• Java2EE基础练习_chapter02流程控制



    申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
    全文共计16851字,阅读大概需要10分钟
    欢迎关注我的个人公众号:不懂开发的程序猿

    题目01

    假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
    一个两位数,然后按照下面的规则判定用户是否能赢。
    1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
    2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
    3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
    4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
    5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。

    package com.jerry.exer;
    
    import java.util.Scanner;
    
    /**
     * @author 金阳
     * @description
     * @create 2022-09-19 19:57
     */
    public class Exer2 {
        public static void main(String[] args) {
            /*假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
            一个两位数,然后按照下面的规则判定用户是否能赢。
            1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
            2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
            3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
            4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
            5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。*/
    //        System.out.println(Math.random()*90+10);
    
            int random = (int) (Math.random() * 90 + 10);//一定可以产生一个随机的两位数,并且最小是10
            System.out.println("random=" + random);
            int randomShi = random / 10;
            System.out.println("randomShi=" + randomShi);
            int randomGe = random % 10;
            System.out.println("randomGe=" + randomGe);
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个两位数:");
            int input = scanner.nextInt();
            System.out.println("您输入的两位数为:" + input);
            int inputShi = input / 10;
            System.out.println("inputShi=" + inputShi);
            int inputGe = input % 10;
            System.out.println("inputGe=" + inputGe);
            if (random == input) {
                System.out.println("奖金10 000美元");
            }
            else if (inputShi == randomGe && inputGe == randomShi) {
                System.out.println("奖金 3 000美元");
            }
            else if (inputShi == randomShi || inputGe == randomGe) {
                System.out.println("奖金1 000美元");
            }
            else if (inputShi == randomGe || inputGe == randomShi) {
                System.out.println("奖金500美元");
            } else {
                System.out.println("彩票作废");
            }
        }
    }
    

    题目02

    假如今天是周二,用户随机输入一个数num,判断过了num天以后是周几?

    package com.jerry.exer;
    
    import java.util.Scanner;
    
    /**
     * @author 金阳
     * @description
     * @create 2022-09-19 20:19
     */
    public class Exer3 {
        public static void main(String[] args) {
    //        char x = 'x';
    //        int i = 10;
    //        System.out.println(true? x : i);//65+
    //        System.out.println(true? 'x' : 10);//x
    
            //今天是周二,100天以后是周几?
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个数:");
            int num = scanner.nextInt();
            int var = num % 7;
            int today  = 2;
            int tomorrow = today + var;
    
            switch (tomorrow){
                case 1:
                    System.out.println("今天是周一");
                    break;
                case 2:
                    System.out.println("今天是周2");
                    break;
                case 3:
                    System.out.println("今天是周3");
                    break;
                case 4:
                    System.out.println("今天是周4");
                    break;
                case 5:
                    System.out.println("今天是周5");
                    break;
                case 6:
                    System.out.println("今天是周6");
                    break;
                case 7:
                    System.out.println("今天是周7");
                    break;
                default:
                    System.out.println("今天是周一");
    
            }
    
        }
    
    }
    

    题目03

    自增运算

    package com.jerry.exer;
    
    /**
     * @author 金阳
     * @description
     * @create 2022-09-19 20:44
     */
    public class Exer4 {
        public static void main(String[] args) {
            int a = 23;
            int b = 12;
            System.out.println(a + "+" + b + "=" + (a + b));
            int sum = a + b;
            System.out.println(a + "+" + b + "=" + sum);
    
            int sub = a - b;
            //System.out.println(a + "-" + b + "=" + a-b);//错误,原因是a + "-" + b + "=" + a的结果是字符串,字符串不能进行减法
            System.out.println(a + "-" + b + "=" + (a - b));
            System.out.println(a + "-" + b + "=" + sub);
    
            int mul = a * b;
            System.out.println(a + "*" + b + "=" + a * b);
            System.out.println(a + "*" + b + "=" + mul);
    
            //整数相除,只保留整数部分
            int div = a / b;
            System.out.println(a + "/" + b + "=" + a / b);
            System.out.println(a + "/" + b + "=" + div);
    
            double d = (double) a / b;//先把a的类型进行转换,转换成double类型,然后再和b相除
            System.out.println(a + "/" + b + "=" + d);
    
            int yu = a % b;
            System.out.println(a + "%" + b + "=" + yu);
    
            System.out.println("------------------特殊的取模----------------------");
            System.out.println(5 % 2);//1
            System.out.println(-5 % -2);//-1
            System.out.println(-5 % 2);//-1
            System.out.println(5 % -2);//1
    
            System.out.println("------------------负号----------------------");
            int num1 = 12;
            int num2 = -num1;
            System.out.println("num2=" + num2);
    
            System.out.println("------------------自增----------------------");
            int i = 0;
            System.out.println("自增之前i=" + i);
            i++;
            System.out.println("自增第一次之后i=" + i);
            ++i;
            System.out.println("自增第二次之后i=" + i);
            int j = ++i;//把i自增1,然后结果赋值给j,或者说,先算++i,然后再赋值
            System.out.println("自增第三次之后i=" + i);
            System.out.println("j=" + j);
            int k = i++;//先算赋值,把i的值赋值给k,i原来是3,把3赋值给k,然后i在自增1,i变成4
            System.out.println("自增第四次之后i=" + i);
            System.out.println("k=" + k);
    
            //面试题:陷阱题
            i = i++;//先赋值,把i原来的值重新赋值给i,不变,然后i自增,但是这个自增后的值没有在放回变量i的位置
            System.out.println("自增第五次之后i=" + i);
        }
    }
    

    题目04

    考查运算符的优先级

    package com.jerry.exer;
    
    /**
     * @author 金阳
     * @description
     * @create 2022-09-19 20:53
     */
    public class Exer5 {
        //考查运算符的优先级
        public static void main(String[] args) {
            int x = 0, y = 1;
            if (++x == y-- & x++ == 1 || --y == 0)
                System.out.println("x=" + x + ",y=" + y);   //x = 2,y = 0;
            else
                System.out.println("y=" + y + ",x=" + x);
        }
    
    }
    
    

    题目05

    如何求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C

    package com.jerry.exer;
    
    import java.util.Scanner;
    
    /**
     * @author jerry_jy
     * @create 2022-09-20 9:21
     */
    public class Exer6 {
        public static void main(String[] args) {
            //如何求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个0~255之间的整数:");
            int num = scanner.nextInt();
    
            //方式一:自动实现
    //        String hexString = Integer.toHexString(num).toUpperCase(Locale.ROOT);
    //        System.out.println(num + " 的十六进制是:" + hexString);
    
            //方式二:手动实现
            int i = num / 16;
            int j = num % 16;
            char c = 0;
            if (j == 10) {
                c = 'A';
            } else if (j == 11) {
                c = 'B';
            } else if (j == 12) {
                c = 'C';
            } else if (j == 13) {
                c = 'D';
            } else if (j == 14) {
                c = 'E';
            } else if (j == 15) {
                c = 'F';
            }
    
            System.out.println(num + " 的十六进制是:" + i + c);
        }
    }
    

    题目06

    运算符的判断

    package com.jerry.exer;
    
    /**
     * @author jerry_jy
     * @create 2022-09-20 9:24
     */
    public class Exer7 {
        public static void main(String[] args) {
    //        int a = 3, b = 8;
    //
    //        int c = (a > b) ? a++ : b++;
    //        System.out.println("a=" + a + "\tb=" + b + "\tc=" + c);  //3,9,8
    //
    //        int d = (a > b) ? ++a : ++b;
    //        System.out.println("a=" + a + "\tb=" + b + "\td=" + d);  //3,8,9
    //
    //        int e = (a < b) ? a++ : b++;
    //        System.out.println("a=" + a + "\tb=" + b + "\te=" + e);  //4,8,3
    //
    //        int f = (a < b) ? ++a : ++b;
    //        System.out.println("a=" + a + "\tb=" + b + "\tf=" + f);  //3,8,4
    
    //        short s1 = 1; s1 = s1 + 1;有什么错?
    //        short s1 = 1; s1 += 1;有什么错
    
            short s1 = 1;
            s1 = (short) (s1 + 1);
        }
    
    }
    

    题目07

    从键盘分别输入年、月、日,判断这一天是当年的第几天

    package com.jerry.exer;
    
    import java.util.Scanner;
    
    /**
     * @author jerry_jy
     * @create 2022-09-20 9:41
     */
    public class Exer9 {
    //    从键盘分别输入年、月、日,判断这一天是当年的第几天
    
        public static void main(String[] args) {
    
            Scanner scanner1 = new Scanner(System.in);
            System.out.println("请输入年:");
            int year = scanner1.nextInt();
    
            Scanner scanner2 = new Scanner(System.in);
            System.out.println("请输入月:");
            int month = scanner2.nextInt();
    
            Scanner scanner3 = new Scanner(System.in);
            System.out.println("请输入日:");
            int day = scanner3.nextInt();
    
    
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                switch (month) {
                    case 1:
                        System.out.println("这一天是当年的第" + day + "天");
                        break;
                    case 2:
                        System.out.println("这一天是当年的第" + (day + 31) + "天");
                        break;
                    case 3:
                        System.out.println("这一天是当年的第" + (day + 31 + 28) + "天");
                        break;
                    case 4:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31) + "天");
                        break;
                    case 5:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30) + "天");
                        break;
                    case 6:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31) + "天");
                        break;
                    case 7:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30) + "天");
                        break;
                    case 8:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31) + "天");
                        break;
                    case 9:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31) + "天");
                        break;
                    case 10:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30) + "天");
                        break;
                    case 11:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31) + "天");
                        break;
                    case 12:
                        System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) + "天");
                        break;
                }
            }
        }
    }
    

    题目08

    使用条件结构实现,如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。

    package com.jerry.exer;
    
    import java.util.Scanner;
    
    /**
     * @author jerry_jy
     * @create 2022-09-20 10:06
     */
    public class Exer12 {
        //    使用条件结构实现,如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。
        public static void main(String[] args) {
            Scanner scanner1 = new Scanner(System.in);
            System.out.println("请输入用户名:");
            String s = scanner1.next();
    
            Scanner scanner2 = new Scanner(System.in);
            System.out.println("请输入密码:");
            String pwd = scanner1.next();
    
            String str1 = "青";
    
            if (s.contains(s) && pwd.equals("123")) {
                System.out.println("欢迎你,青");
            } else {
                System.out.println("对不起,你不是青");
            }
    
        }
    }
    

    题目09

            求ax2+bx+c=0方程的根。a,b,c分别为函数的参数,
        如果a≠0,那么:
        (1)当b2-4ac>0,则有两个解;
        (2)当b2-4ac=0,则有一个解;
        (3)当b2-4ac<0,则无解;
        如果a=0,b≠0,那么,
    
    public class Exer13 {
    
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
    
            System.out.println("一元二次方程:ax^2+bx+c=0");
            System.out.print("请输入参数a:");
            double a = input.nextDouble();
    
            System.out.print("请输入参数b:");
            double b = input.nextDouble();
    
            System.out.print("请输入参数c:");
            double c = input.nextDouble();
    
            if (a != 0) {
                double temp = b * b - 4 * a * c;
                if (temp > 0) {
                    double x1 = (-b + Math.sqrt(temp)) / (2 * a);
                    double x2 = (-b - Math.sqrt(temp)) / (2 * a);
                    System.out.println("方程有2个根,分别是" + "x1=" + x1 + "x2=" + x2);
                }
                if (temp == 0) {
                    double x = -b / (2 * a);
                    System.out.println("方程有且仅有一个根:" + x);
                }
                if (temp < 0) {
                    System.out.println("方程无解");
                }
            }
            if (a == 0 && b != 0) {
                double x = -c / b;
                System.out.println("方程的根为:" + x);
            }
        }
    }
    

    题目10

        赌数游戏
    提供三个1-6的随机数,作为掷骰子得到的点数。如果各个点数相同,则为豹子。
    如果三个骰子点数和,小于或等于9,则为“小”。
    如果三个骰子点数和,大于9,则为“大”。
    用户随机选择:押大、押小或者押豹子。通过判断,输出客户是否押正确。
    
     public static void main(String[] args) {
            int random1 = (int) (Math.random() * 7);
            int random2 = (int) (Math.random() * 7);
            int random3 = (int) (Math.random() * 7);
            System.out.println("三个1-6的随机数" + random1 + " , " + random2 + " , " + random3);
    
            String result = "";
            if (random1 == random2 && random2 == random3) {
                result = "豹子";
            } else if (random1 + random2 + random3 <= 9) {
                result = "小";
            } else {
                result = "大";
            }
    
            // 2、用户输入猜的结果
            Scanner input = new Scanner(System.in);
            System.out.print("请押宝,买定离手:(选择:大、小、豹子)");
            String guess = input.next();
    
            // 3、判断
            if (result.equals(guess)){
                System.out.println("猜对了!");
            }else {
                System.out.println("猜错了,再试一次吧~");
            }
    
        }
    

    题目11

        编写一个程序,为一个给定的年份找出其对应的中国生肖。
    
     public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个年份:");
            int year = scanner.nextInt();
    
            int var = year % 12;
    
            switch (var){
                case 0:
                    System.out.println(year+" 年是猴年");
                    break;
                case 1:
                    System.out.println(year+" 年是鸡年");
                    break;
                case 2:
                    System.out.println(year+" 年是狗年");
                    break;
                case 3:
                    System.out.println(year+" 年是猪年");
                    break;
                case 4:
                    System.out.println(year+" 年是鼠年");
                    break;
                case 5:
                    System.out.println(year+" 年是牛年");
                    break;
                case 6:
                    System.out.println(year+" 年是虎年");
                    break;
                case 7:
                    System.out.println(year+" 年是兔年");
                    break;
                case 8:
                    System.out.println(year+" 年是龙年");
                    break;
                case 9:
                    System.out.println(year+" 年是蛇年");
                    break;
                case 10:
                    System.out.println(year+" 年是马年");
                    break;
                case 11:
                    System.out.println(year+" 年是羊年");
                    break;
            }
        }
    

    题目12

    执行如下代码后,c的值是多少?

            int a = 0;
            int c = 0;
            do {
                --c;
                a = a - 1;
            } while (a >= 0);
            System.out.println("c = " + c);
    

    题目13

    以下代码的运行结果?

            int i=10;
            while(i>0){
                i = i +1;
                if(i==10){
                    break;
                }
            }
            System.out.println("i=" + i);
    
    

    题目14

        1)输入长和宽,输出长方形,如:输入4和3, 将输出如下图形
        ####
        ####
        ####
    
            Scanner scanner1 = new Scanner(System.in);
            System.out.println("请输入长方形的长:");
            int a = scanner1.nextInt();
    
            Scanner scanner2 = new Scanner(System.in);
            System.out.println("请输入长方形的宽:");
            int b = scanner2.nextInt();
    
            for (int i = 1; i <= b; i++) {
                for (int j = 1; j <= a; j++) {
                    System.out.print("#");
                }
                System.out.println();
            }
        }
    

    题目15

    2)输入高度,输出直角三角形。如:输入4, 将输出如下图形
    #
    ##
    ###
    ####
    
            Scanner scanner1 = new Scanner(System.in);
            System.out.println("请输入三角形的高度:");
            int n = scanner1.nextInt();
    
            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= n - i + 1; j++) {
                    System.out.print("#");
                }
                System.out.println();
            }
    

    题目16

    打印九九乘法表

            for (int i = 1; i <= 9; i++) {
                for (int j = 1; j <= i; j++) {
                    System.out.print(j + "*" + i + "=" + (i * j) + "\t");
                }
                System.out.println();
            }
    

    题目17

    3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?不考虑小数

            int day = 0;
            for (int length = 3000; length >= 5; day++) {
                length /= 2;
            }
            System.out.println(day++);
    

    题目18

    打印1-100之间非13的倍数,使用continue语句

            for (int i = 1; i <=100 ; i++) {
                if (i%13!=0){
                    System.out.println(i);
                }
            }
    

    题目19

    用循环控制语句打印输出:1+3+5+…+99=?的结果

            int sum = 0;
            for (int i = 1; i < 100; i++) {
                if (i % 2 != 0) {
                    sum += i;
                }
            }
            System.out.println(sum);
    

    题目20

    下面的代码输出结果?

            int i = 0, j = 5;
            tp:
            for (; ; ) {
                i++;
                for (; ; ) {
                    if (i > j--)
                        break tp;
                }
            }
            System.out.println("i = " + i + ", j = " + j);//1 -1
    

    题目21

    输出从1到100之间所有不能被3整除的数;并输出这些整数的和

            int sum =0;
            for (int i = 1; i <=100 ; i++) {
                if (i%3!=0){
                    System.out.println(i);
                    sum+=i;
                }
            }
            System.out.println(sum);
    
    

    题目22

    猜数字游戏
    随机生成一个100以内的数,猜数字游戏:
    从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次?

            int random = (int) (Math.random() * 100);
            System.out.println("生成的随机数是:" + random);
    
            int i = 1;
            for (; ; i++) {
                Scanner scanner = new Scanner(System.in);
                System.out.println("请从键盘上输入一个100以内的数:");
                int input = scanner.nextInt();
                if (input > random) {
                    System.out.println("大了");
    //                break;
                }
                if (input < random) {
                    System.out.println("小了");
    //                break;
                }
                if (input == random) {
                    System.out.println("猜对了");
                    break;
                }
            }
            System.out.println("一共猜了" + i + "次");
    

    题目23

    打印1-100之间数,其中3、5、7的倍数不打印(continue)

            for (int i = 1; i <= 100; i++) {
                if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
                    System.out.println(i);
                }
            }
    

    题目24

    一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身的约数)
    例如6=1+2+3.编程 找出1000以内的所有完数

            System.out.println("1-1000之间的完数有:");
            for (int i = 1; i <=1000 ; i++) {
                int sum =0;
                for (int j = 1; j<i-1;j++){
                    if (i%j==0){
                        sum+=j;
                    }
                }
                if (sum == i){
                    System.out.println(i);
                }
            }
    

    题目25

    输入两个正整数m和n,求其最大公约数和最小公倍数

            System.out.println("输入两个正整数m和n:");
            Scanner scanner1 = new Scanner(System.in);
            int m = scanner1.nextInt();
    
            Scanner scanner2 = new Scanner(System.in);
            int n = scanner1.nextInt();
    
            int max = (m>n)?m : n;
            int min = (m<n)?m : n;
    
            //最大公约数
            for(int i=min;i<=max;i++){
                if (m%i==0&&n%i==0){
                    System.out.println("最大公约数"+i);
                    break;
                }
            }
    
            // 最小公倍数
            for (int i=max;i<=max*min;i++){
                if (i%m==0&&i%n==0){
                    System.out.println("最小公倍数"+i);
                    break;
                }
            }
    

    题目26

    根据指定月份,打印该月份所属的季节

            System.out.println("请输入一个1~12之间的整数:");
            Scanner scanner = new Scanner(System.in);
            int month = scanner.nextInt();
            if (month == 1 || month == 2 || month == 3){
                System.out.println("春");
            }
            if (month == 4 || month == 5 || month == 6){
                System.out.println("夏");
            }
            if (month == 7 || month == 8 || month == 9){
                System.out.println("秋");
            }
            if (month == 10 || month == 11 || month == 12){
                System.out.println("冬");
            }
    

    题目27

        打印自然数的个数
        1)打印1~100之间 6的倍数的个数
    
            int flag = 0;
            for (int i = 1; i <= 100; i++) {
                if (i % 6 == 0) {
                    flag++;
                    System.out.println(i);
                }
            }
            System.out.println("flag=" + flag);
    
        2)求出1~100之间,既是3又是7的倍数的自然数出现的次数?
    
            int flag = 0;
            for (int i = 1; i <= 100; i++) {
                if (i % 3 == 0 && i % 7 == 0) {
                    flag++;
                    System.out.println(i);
                }
            }
            System.out.println("flag=" + flag);
    

    题目28

    求调和级数中从第多少项开始值大于10
    调和级数的第n项形式为:1+1/2+1/3+…+1/n

            double sum = 0.0;
            int i = 1;
            while (true) {
                sum += 1.0 / i;
                if (sum > 10) {
                    break;
                }
                i++;
            }
            System.out.println(i);
    

    题目29

        打印如下的图形:三角形
    
           *
           * * *
           * * * * *
           * * * * * * *
           * * * * *
           * * *
           *
    
            for (int i = 1; i <= 7; i++) {
                if (i <= 4) {
                    for (int j = 1; j <= 2 * i - 1; j++) {
                        System.out.print("* ");
                    }
                    System.out.println();
                }
                if (i > 4) {
                    for (int j = 1; j <= 15 - 2 * i; j++) {
                        System.out.print("* ");
                    }
                    System.out.println();
                }
            }
    

    题目30

        编写程序,打印100-200之间的质数
    
            for (int i = 100; i <= 200; i++) {
                for (int j = 2; j < i; j++) {
                    if (i % j == 0) {
                        break;
                    } else {
                        System.out.println(i);
                        break;
                    }
                }
            }
    

    题目31

    输出所有的水仙花数
    所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
    例如: 153 = 111 + 333 + 555

            for (int i = 100; i < 1000; i++) {
                int bai = i / 100;
                int shi = (i - bai * 100) / 10;
                int ge = i - bai * 100 - shi * 10;
                if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) {
                    System.out.println("i=" + i);
                }
            }
    

    题目32

    山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
    提示:
    (1) 用整型变量water表示水缸里的水“int water = 15;”。
    (2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
    (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
    (4) 套用while循环(或do-while循环)写出代码。

            int water = 15;
            int count = 0;
            while (water < 50) {
                water += 5;
                count++;
            }
            System.out.println("小和尚要挑" + count + "次水才可以把水缸挑满");
    

    题目33

    生成13位条形码
    Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。
    例如:690123456789
    计算其校验码的过程为:
    ① 前十二位的奇数位和6+0+2+4+6+8=26
    ② 前十二位的偶数位和9+1+3+5+7+9=34
    ③ 将奇数和与偶数和的三倍相加26+34*3=128
    ④ 取结果的个位数:128的个位数为8
    ⑤ 用10减去这个个位数10-8=2
    所以校验码为2
    (注:如果取结果的个位数为0,那么校验码不是为10(10-0=10),而是0)
    实现上述代码的功能,计算验证码,输入12位条码,返回带验证码的条码。
    例:输入:692223361219输出:6922233612192

            System.out.println("请输入一个0~9之间的12位的数:");
            Scanner scanner = new Scanner(System.in);
            Long num = scanner.nextLong();
    
            Long shiEr = num / 100000000000L;
            Long shiYi = (num - shiEr * 100000000000L) / 10000000000L;
            Long shi = (num - shiEr * 100000000000L - shiYi * 10000000000L) / 1000000000L;
            Long jiu = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L) / 100000000L;
            Long ba = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L) / 10000000L;
            Long qi = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L) / 1000000L;
            Long liu = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L) / 100000L;
            Long wu = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L) / 10000L;
            Long si = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L) / 1000L;
            Long san = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L - si * 1000L) / 100L;
            Long er = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L - si * 1000L - san * 100L) / 10L;
            Long yi = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L - si * 1000L - san * 100L - er * 10L) / 1L;
    
            Long odds = shiEr + shi + ba + liu + si + er;
            Long even = shiYi + jiu + qi + wu + san + yi;
            Long sum = odds + even * 3;
            Long code = 0L;
            if (sum < 100) {
                Long ge = sum % 10;
                if (ge == 0) {
                    code = 0L;
                } else {
                    code = 10 - ge;
                }
            }
    
            if (sum < 1000) {
                Long ge = sum % 100;
                if (ge == 0) {
                    code = 0L;
                } else {
                    code = 10 - ge;
                }
            }
            System.out.println("生成13位条形码: " + num + code);
    

    题目34

    实现判断一个4位整数,统计出此整数里面包含多少个偶数,多少个奇数的功能

            System.out.println("请输入一个4位的整数:");
            Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();
    
            int flag = 0;
            for (int i = 1; i <= num; i++) {
                if (i % 2 == 0) {
                    flag++;
                }
            }
            System.out.println("此整数里面包含" + flag + "个偶数");
            int flag1 = 0;
            for (int i = 1; i <= num; i++) {
                if (i % 2 != 0) {
                    flag1++;
                }
            }
            System.out.println("此整数里面包含" + flag1 + "个奇数");
    

    题目35

    开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适。

            System.out.println("请输入您的身高:");
            Scanner scanner1 = new Scanner(System.in);
            double inputHeight = scanner1.nextDouble();
            System.out.println("您的身高为:" + inputHeight + " cm");
    
            System.out.println("请输入您的体重:");
            Scanner scanner2 = new Scanner(System.in);
            double inputWeight = scanner2.nextDouble();
            System.out.println("您的体重为:" + inputWeight + " 斤");
    
            double varWight = (inputHeight - 108) * 2;
            System.out.println("计算出来的理想体重在: " + (varWight - 10.0) + " 斤到 " + (varWight + 10.0) + " 斤之间");
    
            if (inputWeight < varWight - 10.0 || inputWeight > varWight + 10.0) {
                System.out.println("体重不合格!");
            } else {
                System.out.println("体重合格!");
            }
    
  • 相关阅读:
    04-递归练习题
    后台平台总结
    西门子PLC的工作原理是什么
    APP 备案公钥、签名 MD5获取方法。
    android studio通过wifi、无线连接设备
    C#解析Markdown文档,实现替换图片链接操作
    python爱心代码高级
    Scrapy第二篇:构建scrapy项目
    linux运维基础一(shell两类命令&Hash缓存表&命令行历史)
    爬虫项目(九):实时抓取csdn热榜数据
  • 原文地址:https://blog.csdn.net/qq_44807756/article/details/127103786