Java循环题记录1(20题)

1. 打印1~100的数字
 public static void main(String[] args) {
        //1. 打印1~100的数字
        int i = 0;
        while(i<=100){
            System.out.println(i++);
        }
    }

//2.求两个数之商,要求对结果小数点后四舍五入保留三位小数。

 public static void main(String[] args) {
        //求两个数之商,要求对结果小数点后四舍五入保留三位小数。
        //思路:先将取得的商利用int强转成四位整数,在进行除法变回刚取得的商,获取三位小数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        double i = sc.nextDouble();
        System.out.println("请输入第二个数:");
        double j = sc.nextDouble();
        double k = i / j; //假设商为1.2346
        int temp = (int)(k*1000+0.5);//这里的+0.5是为了四舍五入.逢10进1(1235(第五位的6已经四舍五入))
        System.out.println(temp);
        double d = temp/1000d; // 末尾一定要加d进行数据类型转换 (1.235)转换成功
        System.out.println(d);
    }

3.随机数

public static void main(String[] args) {
        //随机数

        // 默认得到的是一个双精度的浮点数。这个数的取值范围 在 [0,1)之间
        double random = Math.random();

        //如果想取更大范围的随机数可以进行乘法运算
        double d = Math.random()*100;

        //这里有个公式,可以让你在任意区间取随机数
        //目标[start end]
        //(int)(Math.random()*(end-start+1)+end

        //例如:[200 300]
        int i = (int)(Math.random()*101)+200;
        System.out.println(i);

    }

4.

随机生成一个年份(1900-2030之间),判断该年是否是闰年
 public static void main(String[] args) {
        //随机生成一个年份(1900-2030之间),判断该年是否是闰年
        //思路:先生成随机数,利用前面的公式,闰年的判断位4年一润,百年不润.四百年一润

        int year = (int)(Math.random() * (2030 - 1900 + 1)) + 1900;
        System.out.println(year);

        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
            System.out.println(year+"是闰年");
        }
        else{
            System.out.println(year+"是平年");
        }
    }

5.

输入年月日三个值,求所输入的日是这一年的第几天(限定只能用switch来实现)
 public static void main(String[] args){
        //输入年月日三个值,求所输入的日是这一年的第几天(限定只能用switch来实现)
        //思路:先用Scanner获取用户输入,先不考虑闰年,如果输入的是2022.3.31
        //那我们是不是就可以月份-1再加上我们这个月的天数算出第几天
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        System.out.println("请输入月份:");
        int month = sc.nextInt();
        System.out.println("请输入日份:");
        int day = sc.nextInt();

        int days = 0;

      //这里用到的是switch没有break穿刺的特性
        switch(month-1){
            case 11:
                days += 30;
            case 10:
                days += 31;
            case 9:
                days += 30;
            case 8:
                days += 31;
            case 7:
                days += 31;
            case 6:
                days += 30;
            case 5:
                days += 31;
            case 4:
                days += 30;
            case 3:
                days += 31;
            case 2:
                days += 28;
            case 1:
                days += 31;
            default:
                break;
        }
        days = day+days;

        //判断是否为闰年,是否需要加上一天,这里要注意month不能等于1或者2不然会出bug
        if ((month != 1 && month != 2 )&& (year % 4 == 0 && year % 100 !=0 || year % 400 == 0)){
            days+=1;
        }
        System.out.println("总天数"+days);
    }

6.等差数列

 public static void main(String[] args) {
        //打印100内的等差数列,从1开始,差值为4
        for (int i = 1;i<=100;i+=4){
            System.out.println(i);
        }
    }

7.等比数列

 public static void main(String[] args) {
        //打印100内的等比数列,从1开始,等比值为2
        for (int i = 1;i<=100;i*=2){
            System.out.println(i);
        }
    }
//8.输出 100 内能被3整除但是不能被4整除的所有奇数?
public static void main(String[] args) {
        //输出 100 内能被3整除但是不能被4整除的所有奇数?
        int i = 0;
        while(i<=100){
            if (i%3 == 0 && i%4!=0 && i%2!=0){
                System.out.println(i);
            }
            i++;
        }
    }

9.求100内的和

public static void main(String[] args) {
        //求100内的和
        int i = 0;
        int sum = 0;
        while(i<=100){
            sum+=i;
            i++;
        }
        System.out.println(sum);
    }

10.一个循环求出100内的奇数和、偶数和

public static void main(String[] args) {
        //一个循环求出100内的奇数和、偶数和
        int i = 0;
        int odd = 0;//定义偶数和
        int even = 0;//定义奇数和
        while (i <= 100) {
            if (i % 2 == 0) {
                odd += i;
            } else {
                even += i;
            }
            i++;
        }
        System.out.println(odd);//偶数和
        System.out.println(even);//奇数和
    }
11.求 a+aa+aaa+aaaa+aaaaa (其中a是2)
public static void main(String[] args) {
        // 求 a+aa+aaa+aaaa+aaaaa (其中a是2)
        //思路:2+22+222+2222+22222相当于2+(2*10+2)+(2*100+2)+(2*1000+2)+(2*10000+2)

        int i = 1;
        int a = 0;
        int sum = 0;
        while(i<=5){
            a+=sum;
            sum = a*10+2;
            i++;
        }
        System.out.println(sum);
    }

12.6!

 public static void main(String[] args) {
        //6!
        //思路:1*2*3*4*5*6
        int i = 1;
        int j = 1;
        while(i<=6){
            j*=i;
            i++;
        }
        System.out.println(j);
    }

13.求1! + 4! + 7! + …+ 16!

public static void main(String[] args) {
        //求1! + 4! + 7! + …+ 16!
        //思路:先打印出 1,4,,7,10,13,16,在求出各自阶乘,在相加 需要巩固
        long sum = 0;
        for(int i = 1;i<=16;i+=3){
            long c = 1;
            for (long j = 1;j<=i;j++){
                c*=j;
            }
            sum+=c;
        }
        System.out.println(sum);
    }

14.求共有几组i,j,k,符合算式ijk+kji=1333,其中i,j,k是0~9之间的一位整数?

public static void main(String[] args) {
       // 求共有几组i,j,k,符合算式ijk+kji=1333,其中i,j,k是0~9之间的一位整数? 需要巩固
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                for (int k = 0; k < 10; k++) {
                    if ((i*100+j*10+k) + (k*100 +j * 10 + i) == 1333) {
                        System.out.println(i+" " + j + " " + k);
                    }
                }
            }
        }

    }

15.求四位数的偶数中,所有个十百位数字之和是15倍数的数,它们的总 和?

   public static void main(String[] args) {
        // 求四位数的偶数中,所有个十百位数字之和是15倍数的数,它们的总 和? 需要巩固
        int sum = 0;
        for (int i = 1000; i <= 9999; i++) {
            int g = i % 10;
            int s = i / 10 % 10;
            int b = i / 100 % 10;
            int q = i / 1000 % 10;
            int temp = g + s + b + q;
            if (temp % 15 == 0) {
                sum += i;
            }
        }
        System.out.println(sum);
    }

16.99乘法口诀表

public static void main(String[] args){
        //99乘法口诀表 
        for (int i = 1;i<=9;i++){
            for (int j = i;j<9;j++) {
                int sum = i*j;
                System.out.println(i + "*" + j + "=" +sum);
            }
        }
    }

17.//输出所有的水仙花数 1^3+5^3+3^3=153

public static void main(String[] args) {
        //输出所有的水仙花数 1^3+5^3+3^3=153
        for (int i = 100;i<=999;i++){
            int g = i%10;//个
            int s = i/10%10;//十
            int b = i/100%10;//百
            if(g*g*g+b*b*b+s*s*s == i){
                System.out.println(i);
            }

        }
    }

18.键盘输入一个字符串,将输入的大小写字母互换后输出

public static void main(String[] args) {
        //键盘输入一个字符串,将输入的大小写字母互换后输出 
        //ASCII码表
        Scanner sc =  new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();//获取长度
        for (int i = 0;i=65 && c<=90 ){
            System.out.print((char)(c+32));
        }
        if (c >= 97 && c<= 122 ) {
            System.out.print((char)(c-32));
        }
    }
        sc.close();
}

19.键盘输入一个字符,判断是字母,数字还是中文字符

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个字符:");
        String str = sc.next();
        char c = str.charAt(0);
        if (Character.isUpperCase(c) || Character.isLowerCase(c)) {
            System.out.println(c + "是字母");
        }
        if(Character.isDigit(c)) {
            System.out.println(c + "是数字");
        }
        //-- 所以,一般用4E00-9FA5已经可以,如果要更广,则用2E80-A4CF  ||   F900-FAFF || FE30-FE4F
        if (c >= '\u4e00' &&  c <= '\u9fa5') {
            System.out.println("是中文");
        }
        sc.close();
    }

20.有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服。最后打印总共买了几件衣服。

 public static void main(String[] args) {
        int sum = 0;
        Scanner sc = new Scanner(System.in);
        for (int i = 1; i <= 5; i++) {
            System.out.println("欢迎光临第" + i + "家店");
            for (int clothes = 1;clothes<=3;clothes++){
                System.out.println("要离开吗(y/n)");
                char str = sc.next().charAt(0);
                if(str == 'n'){
                    break;
                }
                else if(str == 'y'){
                    System.out.println("买了一件衣服");
                    sum++;
                }
            }
            System.out.println("离店结账");
        }
        System.out.println("共买了:" + sum + "件衣服");
    }

你可能感兴趣的:(java)