Day30---学习Java第三弹

2021-08-09

Java经典编程例题(八)

25、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

package test2;

public class test23 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        test23 t = new test23();
        System.out.println(t.d(5));
    }

    public int d(int x) {
        if (x == 1)
            return 10;
        else
            return 2 + d(x - 1);
    }
}

 

 

26、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

package test2;

import java.util.Scanner;

public class test24 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char[] ch = s.toCharArray();
        System.out.println(ch.length);
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[ch.length - 1 - i] + " ");
        }
    }

}

分析:用String类型来接收数据更方便(对本题的要求来说)
需要注意的点:无

 

27、请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

package test2;

import java.util.Scanner;

public class test26 {
    public static void main(String[] args) {
        getChar tw = new getChar();
        System.out.println("请输入星期的第一个大写字母:");
        char ch = tw.getChar();
        switch (ch) {
        case 'M':
            System.out.println("Monday");
            break;
        case 'W':
            System.out.println("Wednesday");
            break;
        case 'F':
            System.out.println("Friday");
            break;
        case 'T': {
            System.out.println("请输入星期的第二个字母:");
            char ch2 = tw.getChar();
            if (ch2 == 'U') {
                System.out.println("Tuesday");
            } else if (ch2 == 'H') {
                System.out.println("Thursday");
            } else {
                System.out.println("无此写法!");
            }
        }
            ;
            break;
        case 'S': {
            System.out.println("请输入星期的第二个字母:");
            char ch2 = tw.getChar();
            if (ch2 == 'U') {
                System.out.println("Sunday");
            } else if (ch2 == 'A') {
                System.out.println("Saturday");
            } else {
                System.out.println("无此写法!");
            }
        }
            ;
            break;
        default:
            System.out.println("无此写法!");
        }
    }
}

class getChar {
    public char getChar() {
        Scanner s = new Scanner(System.in);
        String str = s.nextLine();
        char ch = str.charAt(0);
        if (ch < 'A' || ch > 'Z') {
            System.out.println("输入错误,请重新输入");
            ch = getChar();
        }
        return ch;
    }
}

分析:可以用if或switch,用switch更简单一些,这里我直接用网上的代码了
需要注意的点:Java提供的方法里没有直接输入char型数值的方法,需要自己创建一个,当然,你也可以用其它方法

 

28、求100之内的素数

package test2;

public class test27 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int m = 0, j, count = 0;
        System.out.print("2 ");
        for (int i = 3; i <= 100; i++) {
            for (j = 2; j < i; j++) {
                if (i % j == 0) {
                    break;
                }
            }
            if (j == i) {
                System.out.print(i + " ");
                count++;
            }

        }
    }

}

分析:素数就是只能被1和自己整除的数
需要注意的点:对数的历遍需要从3开始,但数字2也是素数,所以需要提前输出2

-------------------------------------------------------------------------------------------------------------

明天继续经典例题

posted @ 2021-08-09 21:01  zrswheart  阅读(26)  评论(0编辑  收藏  举报