【算法新手入门】基本数据类型

  • 大家好,我是程序员良辰,本文是笔试黑科技专栏的文章,帮助算法零基础的同学快速入门。题目来自牛客网算法学习篇,难度友好,适合新手练习。
  • 牛客网的算法新手入门专栏

写在前面

学算法就像学说话,得从最基础的开始。今天我们要学的是"牛牛学说话"系列,别看名字萌萌的,这可是打基础的关键一步。这四道题都来自牛客网的算法学习篇,点击链接就能直接跳转练习。

第一题:牛牛学说话之-整数

题目链接: 牛牛学说话之-整数

题目描述

核心知识点

这道题主要考察:

  • 整数的输入输出
  • Scanner 类的使用
  • 基本的 I/O 操作

Java 解法

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        // 读取整数
        int a = in.nextInt();
        int b = in.nextInt();
        
        // 输出结果
        System.out.println(a + " " + b);
    }
}

C 语言解法

c 复制代码
#include <stdio.h>

int main() {
    int a, b;
    
    // 读取整数
    scanf("%d %d", &a, &b);
    
    // 输出结果
    printf("%d %d\n", a, b);
    
    return 0;
}

小贴士

  • Java 中使用 Scanner 类读取输入,记得导入 java.util.Scanner
  • C 语言中使用 scanfprintf 进行输入输出
  • 注意输出格式,空格和换行符不要漏掉

第二题:牛牛学说话之-浮点数

题目链接: 牛牛学说话之-浮点数

题目描述

牛牛刚刚学会了浮点数,感觉很神奇。你能帮他输出浮点数吗?

输入一个浮点数 n,输出这个浮点数 n。

核心知识点

这道题主要考察:

  • 浮点数的输入输出
  • 浮点数精度控制
  • 格式化输出

Java 解法

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        // 读取浮点数
        double n = in.nextDouble();
        
        // 输出浮点数,保留一位小数
        System.out.printf("%.1f\n", n);
    }
}

C 语言解法

c 复制代码
#include <stdio.h>

int main() {
    double n;
    
    // 读取浮点数
    scanf("%lf", &n);
    
    // 输出浮点数,保留一位小数
    printf("%.1f\n", n);
    
    return 0;
}

小贴士

  • Java 中使用 printfString.format 控制小数位数
  • C 语言中 %.1f 表示保留一位小数
  • double 类型比 float 精度更高,推荐使用

第三题:牛牛学说话之-字符串

题目链接: 牛牛学说话之-字符串

题目描述

会说浮点数之后,牛牛又开始学说字符串了。

输入一个字符串,输出这个字符串。

核心知识点

这道题主要考察:

  • 字符串的输入输出
  • 处理带空格的字符串
  • 字符串的基本操作

Java 解法

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        // 读取一行字符串(包含空格)
        String str = in.nextLine();
        
        // 输出字符串
        System.out.println(str);
    }
}

C 语言解法

c 复制代码
#include <stdio.h>

int main() {
    char str[1000];
    
    // 读取一行字符串(包含空格)
    fgets(str, sizeof(str), stdin);
    
    // 输出字符串
    printf("%s", str);
    
    return 0;
}

小贴士

  • Java 中 nextLine() 可以读取包含空格的整行字符串
  • C 语言中 fgetsscanf 更安全,可以防止缓冲区溢出
  • 注意 fgets 会读取换行符,有时需要手动去除

第四题:复读机

题目链接: 复读机

题目描述

无论输入了什么,你都应该输出你的内容。输出之后以换行符结束。

特别的,对于浮点数,由于浮点数精度问题,你需要输出一位小数点后的数,具体输入输出请参考输入输出。

核心知识点

这道题是前三题的综合应用:

  • 混合数据类型的输入输出
  • 多行输入处理
  • 格式化输出的综合运用

Java 解法

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        // 读取整数
        int a = in.nextInt();
        int b = in.nextInt();
        
        // 读取浮点数
        double c = in.nextDouble();
        
        // 读取字符(注意要先消耗掉换行符)
        in.nextLine();
        char ch = in.nextLine().charAt(0);
        
        // 读取字符串
        String str = in.nextLine();
        
        // 输出结果
        System.out.println(a + " " + b);
        System.out.printf("%.1f\n", c);
        System.out.println(ch);
        System.out.println(str);
    }
}

C 语言解法

c 复制代码
#include <stdio.h>

int main() {
    int a, b;
    double c;
    char ch;
    char str[100];
    
    // 读取整数
    scanf("%d %d", &a, &b);
    
    // 读取浮点数
    scanf("%lf", &c);
    
    // 读取字符(注意要消耗掉换行符)
    getchar();
    scanf("%c", &ch);
    
    // 读取字符串
    getchar();
    fgets(str, sizeof(str), stdin);
    
    // 输出结果
    printf("%d %d\n", a, b);
    printf("%.1f\n", c);
    printf("%c\n", ch);
    printf("%s", str);
    
    return 0;
}

小贴士

  • 混合输入时要特别注意换行符的处理
  • Java 中在 nextInt()nextDouble() 后使用 nextLine() 前,要先调用一次 nextLine() 消耗掉换行符
  • C 语言中可以用 getchar() 消耗掉多余的换行符
  • 这道题是"复读机",就是把输入原样输出,但要注意格式

总结

恭喜你完成了算法入门的第一步!这四道题虽然简单,但涵盖了编程中最基础的输入输出操作:

  1. 整数输入输出 - 最基础的数据类型
  2. 浮点数输入输出 - 学会控制精度
  3. 字符串输入输出 - 处理文本数据
  4. 混合输入输出 - 综合运用

学习建议

  • 每道题都要自己动手敲一遍代码
  • 尝试用不同的方法解决同一个问题
  • 注意输入输出的格式,细节决定成败
  • 遇到问题先看报错信息,学会调试
相关推荐
蒙奇D索大2 小时前
【数据结构】排序算法精讲 | 快速排序全解:高效实现、性能评估、实战剖析
数据结构·笔记·学习·考研·算法·排序算法·改行学it
Blossom.1182 小时前
基于混合检索架构的RAG系统优化实践:从Baseline到生产级部署
人工智能·python·算法·chatgpt·ai作画·架构·自动化
断剑zou天涯2 小时前
【算法笔记】有序表——AVL树
笔记·算法
巧克力味的桃子2 小时前
算法:大数除法
算法
@小码农2 小时前
2025年12月 GESP认证 图形化编程 一级真题试卷(附答案)
开发语言·数据结构·算法
巧克力味的桃子2 小时前
让程序在读取到整数0时就终止循环
c语言·算法
_OP_CHEN2 小时前
【算法基础篇】(三十九)数论之从质数判定到高效筛法:质数相关核心技能全解析
c++·算法·蓝桥杯·埃氏筛法·acm/icpc·筛质数·欧拉筛法
算法与编程之美2 小时前
损失函数与分类精度的关系
人工智能·算法·机器学习·分类·数据挖掘
天呐草莓2 小时前
聚类(Clustering)算法
人工智能·python·算法·机器学习·数据挖掘·数据分析·聚类