JAVA基础知识: 流程控制习题答案

第一题:

有 36 人 36 块板砖,男人每人般 4 块,女人每人搬 3 块,小孩每 2 人搬 1 块。36 人都搬了一次,把砖刚好搬晚,问:几男几女的几个小孩?


int nan;
        int nv;
        for (nan = 1; nan < 9; nan++) {
            for (nv = 1; nv < 11; nv++) {
                if ((nan * 4 + nv * 3 + (36 - nan - nv) / 2) == 36
                        && ((36 - nan - nv) % 2 == 0)) {
                    System.out.println(nv + "男");
                    System.out.println(nan + "女");
                    System.out.println(36 - nan - nv);
                }
            }
        }

第二题: 打印 1-100 的素数 (只能被 1 和他本身整除的数)

素数 : 只能被 1 和他本身整除的数.


for (int i = 2; i <= 100; i++) {
            boolean flag = true;
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                System.out.println(" " + i);
            }
        }

第三题: 写个猜数字的小游戏:

生成一个 1-100 的随即数,让用户输入数字猜,如果猜错了 提示猜大了 还是猜小了,然后用户继续输入信数字猜,猜对了退出!
for (;;) {
            Random rd = new Random();
            int re = rd.nextInt(100);
            int ree = rd.nextInt(100);
            if (ree == re) {
                System.out.println("你猜对了 真是牛B到极点了~!" + '\n' + re + '\n' + ree);
                break;
            } else if (ree > re) {
                System.out.println("你猜大了!" + re);
            } else {
                System.out.println("你猜小了!" + re);
            }
        }

第四题:

出租车计费标准为:3 公里以内 10 元,3 公里以后每 1 公里加 2 元,每等待 5 分钟加 2 元。超过 15 公里,每公里加 3 元,打印出钱数。

        System.out.println("请输入等待时间和公里数 ~!");
        Scanner sc = new Scanner(System.in);
        int tim = sc.nextInt();
        int juli = sc.nextInt();
        int fee = 0;
        int fee1 = 0;
        if (tim / 5 != 0) {
            fee1 = tim / 5 * 2;
        }
        if (juli <= 3)
            fee = fee1 + 10;
        else if (juli > 3 && juli <= 15)
            fee = fee1 + 10 + (juli - 3) * 2;
        else
            fee = fee1 + 10 + (juli - 15) * 3 + 12 * 2;
        System.out.println(fee);

第五题:

一电信公司的市内通话费计算标准如下:3 分钟 02 元,3 分钟后每增加一分钟加 0.1元,不足一分钟的按照一分钟计算。要求编写程序。给定一个通话时间(秒)。计算相应的费用。

        System.out.println("Please Input Time ~!");
        Scanner sc = new Scanner(System.in);
        int mm = sc.nextInt();
        double fee;
        if (mm == 0)
            fee = 0;
        if (mm / 180 == 0)
            fee = 0.2;
        else if ((mm - 180) % 60 > 0)
            fee = (mm - 180) / 60 * 0.1 + 0.3;
        else
            fee = (mm - 180) / 60 * 0.1 + 0.2;
        System.out.println(fee);

第六题:

给定 3 个数,a b c ,输出最大数。

        System.out.println("请输入3个数字 !");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int max;
        if (a > b)
            max = a;
        else
            max = b;
        if (max < c)
            max = c;
        System.out.println(max);

第七题:

用 scanner 输入一个数字,然后判断下数字大小,如果大于 0 输出为正数等于 0 输出为 0 否则输出为负数。

        System.out.println("请输 入 一 个 数 字 !");
        Scanner sc = new Scanner(System.in);
        int cc = sc.nextInt();
        if (cc > 0)
            System.out.println("正数");
        else if (cc == 0)
            System.out.println("零");
        else
            System.out.println("负数");

第八题:

用 scanner 输入一个分数,来判断分数等级:
>=90 打印 优秀
80-90 打印 良好
70-80 打印 中等
60-70 打印 及格
<60 打印 不及格

        System.out.println("请输入成绩分数 ~!");
        Scanner sc = new Scanner(System.in);
        int mm = sc.nextInt();
        if (mm >= 90) {
            System.out.println("优秀");
        } else if (mm >= 80) {
            System.out.println("良好");
        } else if (mm >= 70) {
            System.out.println("中等");
        } else if (mm >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }

第九题:

循环打印 100 以内的数。

    for (int i = 1; i <= 100; i++) {
            System.out.println(i);
        }

第十题:

循环打印 100 以内的所有奇数

        for (int i = 99; i >= 1; i = i - 2) {
            System.out.println(i);
        }
        for (int i = 1; i <= 100; i = i + 2) {
            System.out.println(i);
        }
        for (int i = 0; i <= 100; i++) {
            if (i % 2 != 0)
                System.out.println(i);
        }
        for (int i = 100; i >= 0; i--) {
            if (i % 2 != 0)
                System.out.println(i);
        }
        for (int i = 0; i < 50; i++) {
            System.out.println(2 * i + 1);
        }

第十一题:

用 scanner 输入一个数字,计算从 1 到这个数字的累加并打印出来。

        System.out.println("请输入数 ~!");
        Scanner sc = new Scanner(System.in);
        int tim = sc.nextInt();
        int i;
        int sum = 0;
        for (i = 1; i <= tim; i++) {
            if (i % 2 == 1) {
                sum = sum + i;
            }
        }//只做奇数想加
        System.out.println(sum);

第十二题:

打印
*
* *
* * *
* * * *
* * * * *

        for (int i = 0; i <= 5; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print("*");
            }
            System.out.print("\n");
        }

第十三题:

打印
*
***
*****
*******
*********

        for (int i = 0; i < 10; i = i + 2) {
            for (int j = 0; j <= i; j++) {
                System.out.print("*");
            }
            System.out.print("\n");
        }



----------


        for (int h = 0; h < 5; h++) {
            for (int y = 0; y <= 2 * h; y++) {
                System.out.print("*");
            }
            System.out.print("\n");
        }

第十四题:

打印乘法表

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

第十五题:

打印乘法表:遇到 12 的倍数不显示,遇到 28 的倍数,本行终止。

        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                if (i * j % 28 == 0)
                    break;
                if (i * j % 12 == 0) {
                    System.out.print("      ");
                    continue;
                } else
                    System.out.print("   " + i * j + "  ");
            }
            System.out.println("");
        }

第十六题:

打印 0-50 之间不是 5 的倍数和 7 的倍数

        for (int i = 0; i < 50; i++) {
            if (i % 5 == 0 | i % 7 == 0)
                continue; //终止本次循环,继续下此
            System.out.println(i);
        }

第十七题:

学习打印 1-100 的数字,遇到 7 的倍数或包含 7 的数字,不打印

        for (int i = 0; i <= 100; i++) {
            if (i % 7 == 0)
                continue;
            if (i % 10 == 7)
                continue;
            if (i / 7 == 10 | i / 7 == 11)
                continue;
            System.out.println(i);
        }

猜你喜欢

转载自blog.csdn.net/Spark2008/article/details/44454743