Java入门篇 之 逻辑控制(练习题篇)

博主碎碎念: 练习题是需要大家自己打的请在自己尝试后再看答案哦;

个人认为,只要自己努力在将来的某一天一定会看到回报,在看这篇博客的你,不就是在努力吗,所以啊,不要放弃,路上必定坎坷,但是成功后放眼望去,这将是青春很浓重的一笔

今日份励志文案:若结局非你所愿,请在尘埃落定前奋力一搏

加油!!!!!

Java入门篇 之 逻辑控制(练习题篇)_第1张图片

目录

一.第一题

1.1 解题思路

二.第二题

2.1 解题思路

三.第三题

3.1 解题思路

四.第四题

4.1 解题思路

五.第五题

5.1 解题思路

六. 第六题

6.1 解题思路


注意:博主的答案并不是唯一的,每道题都有很多种写法,感兴趣的可以自己尝试一下 

如果看不懂博主的代码,博主个人认为,你对逻辑控制学的不是太扎实,建议看一下博主上一篇对于逻辑控制的讲解

一.第一题

题目:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 

1.1 解题思路

1. 从上述表达式可以分析出

  a. 该表达式主要由100项,基数项为正,偶数项为负

2. 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0

  然后使用flag标记控制奇偶项,奇数项为正,偶数项为负

  然后将所有的项相加即可

答案

public static void main(String[] args) {

    double sum = 0;
    int flg = 1;
    for (int i = 1; i <= 100; i++) {
        sum += 1.0/i * flg;
        flg = -flg;
    }
    System.out.println(sum);
}

二.第二题

题目:输出一个整数的每一位,如:123的每一位是3,2,1

2.1 解题思路

本题主要考虑,如何获取一个数字的每一位:

“ / ”   除法是保留整数

“ % ” 取余是保留余数

例如:

123 % 10 = 3

123/10=12   12%10=2

12/10=1       1%10= 1

代码如下:

答案

public static void main1(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int n = scanner.nextInt();
        while (n != 0) {
            System.out.print(n % 10+" ");
            n /= 10;
        }
    }

三.第三题

题目:编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序

3.1 解题思路

这道题判断相等用到的是 equals () 判断相等,但是这个方法不适用于基本类型,基本类型的判断用的还是" == " 和" != "

答案

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int count = 3;
        System.out.print("请创建你的密码num=");
        String num=scanner.nextLine();
        while (count != 0) {
            System.out.println("请输入你的密码:");
            String password = scanner.nextLine();

            //if(password == "123")   这个判断相等是错误的

            if(password.equals(num)) {
                System.out.println("登录成功!");
                break;
            }else {
                count--;
                System.out.println("你还有"+count+" 次机会!");
            }
        }
    }

四.第四题

题目:求斐波那契数列的第n项。(迭代实现)

4.1 解题思路

斐波那契数列定义为:1 1 2 3 5 8 13 21 我们可以看到,从第3项开始,都等于前一项+前一项的前一项的和。

3=1+2

5+2+3

13 = 5+8

我们可以先定义f1保存第一项的值,f2保存第2项的值,f3保存第3项的值。

每次算法一个f3,就同步更新f1和f2的值

答案

 public static int fib(int n) {
        if(n == 1 || n == 2 ) {
            return 1;
        }
        int f1 = 1;
        int f2 = 1;
        int f3 = 1;
        for (int i = 3; i <= n; i++) {
            f3 = f1+f2;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入斐波那契数列的第n项:");
        int n= scanner.nextInt();
        int N=fib(n);
        System.out.print("斐波那契的第n项是"+N);
    }
}

五.第五题

题目:在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果

5.1 解题思路

  1. 方法名相同
  2. 参数列表不同(数据类型,个数,顺序)
  3. 返回值无关

答案

public static int sum(int a,int b) {
        return a+b;
    }

    public static double sum(double a,double b,double c) {
        return a+b+c;
    }
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入两个整数");
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int c=sum(a,b);
        System.out.print("请输入三个小数");
        double d=scanner.nextDouble();
        double e=scanner.nextDouble();
        double f=scanner.nextDouble();
        double g=sum(d,e,f);
        System.out.println(c);
        System.out.println(g);
    }

六. 第六题

题目:在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?

6.1 解题思路

本题可以借助Java原生类Math当中的max方法求最大值,也可以自己通过If else进行比较。

Math的使用 不需要导入相关的包

答案

public static int max(int a,int b) {
        return Math.max(a,b);
    }

    public static double max(double a,double b,double c) {

        double m = Math.max(a,b);
        return Math.max(m,c);
    }
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入两个整数");
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int c=max(a,b);
        System.out.print("请输入三个小数");
        double d=scanner.nextDouble();
        double e=scanner.nextDouble();
        double f=scanner.nextDouble();
        double g=max(d,e,f);
        System.out.println(c);
        System.out.println(g);
}

如果有解释的不对或者不清晰,如果可以从评论区指出,我一定会加以修改,万分感谢

最后麻烦大佬们动一下发财的小手一键三连,万分感谢

 

你可能感兴趣的:(java,开发语言)