Java练习题 · 程序逻辑控制练习题


1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上).

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
    System.out.println("请输入年龄(ctrl+d 结束):");
    while (sc.hasNextInt()){
        int age = sc.nextInt();
        if (age <= 18) {
            System.out.println("少年~");
        }else if (age >= 19 && age <= 28){
            System.out.println("青年~");
        }else if (age >= 29 && age <= 55){
            System.out.println("中年~");
        }else if (age >= 56){
            System.out.println("老年~");
        }
        System.out.println("请输入年龄(ctrl+d 结束):");
    }
}

2. 判定一个数字是否是素数.

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int num = 0;
    System.out.println("输入数字(ctrl+d 停止):");

    while (sc.hasNextInt()) {
        num = sc.nextInt();
        int i = 0;
        boolean isFlag = true;
        for (i = 2; i < num; i++){
            if (num % i == 0) {
                isFlag = false;
                break;
            }
        }

        if (isFlag) {
            System.out.println(num + " 是素数。");
        }else {
            System.out.println(num + " 不是素数。");
        }
    }
}

3. 打印 1 - 100 之间所有的素数.

public static void main(String[] args) {
    int i = 1;
    for (i = 1; i <= 100; i++){
        int j = 2;
        for (j = 2; j < i; j++){
            if (i % j == 0) {
                break;
            }
        }
        if (i == j) {
            System.out.println(i);
        }
    }
}

4. 输出 1000 - 2000 之间所有的闰年.

public static void main(String[] args) {
    int year = 1000;
    for (year = 1000; year <= 2000; year++){
        if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
            System.out.println(year);
        }
    }
}

5. 输出乘法口诀表.

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();
    int i = 0;
    for (i = 1; i <= num; i++){
        int j = 0;
        for (j = 1; j <= i; j++){
            System.out.print(i + "*" + j + "=" + i*j + "\t");
        }
        System.out.println();
    }
}

6. 求两个正整数的最大公约数.

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入第一个正整数:");
    int a = sc.nextInt();
    System.out.println("请输入第二个正整数:");
    int b = sc.nextInt();
    int c = 0;
    while (a % b != 0){
        c = a % b;
        a = b;
        b = c;
    }
    System.out.println("最大公倍数是:" + b);
}

7. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值.

public static void main(String[] args) {
/*1.0
//        double sum = 1.0;
//        double i = 0.0;
//        for (i = 2.0; i <= 100.0; i++){
//            if (i % 2.0 == 0.0){
//                sum -= (1.0 / i);
//            }else {
//                sum += (1.0 / i);
//            }
//        }
//        System.out.println(sum);         //0.688172179310195
*/

//2.0
        double i = 0.0;
        double sum1 = 0.0;
        double sum2 = 0.0;
        for (i = 1.0; i <= 100.0; i += 2.0){
            sum1 += (1.0 / i);
        }
        for (i = 2.0; i <= 100.0; i += 2.0){
            sum2 += (1.0 / i);
        }
        System.out.println(sum1 - sum2); //0.6881721793101954
}

8. 编写程序数一下 1到 100 的所有整数中出现多少个数字9.

public static void main(String[] args) {
    int i = 1;
    int count = 0;
    for (i = 1; i <= 100; i++){
        if ((9 == i % 10) || (9 == i / 10)) {
            count++;
//                System.out.println(i);
        }
    }
    System.out.println(count + 1);
}

9. 求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”).

public static void main(String[] args) {
    int i = 0;
    for (i = 0; i <= 999; i++){
        if (i == ((i%10)*(i%10)*(i%10) + (i/10%10)*(i/10%10)*(i/10%10) + (i/100)*(i/100)*(i/100))){
            System.out.println(i);
        }
    }
}

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

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int i = 1;
    for (i = 1; i <= 3; i++){
        System.out.println("请输入密码(最多能输入" + (4-i) + "次密码):");
        int number = sc.nextInt();
        if (number == 123) {
            System.out.println("登录成功");
            break;
        }
    }
}

11. 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1.

public static void main(String[] args) {
    int count = 0;
    int num = 15;
    int i = 1;
    for (i = 1; i <= 32; i++){
        if (1 == (1 & num)){
            count++;
        }
        num >>= 1;
    }
    System.out.println(count);
}

12. 获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列.

public static void main(String[] args) {
    int i = 0;
    int num = 10;   //1010
    System.out.println("奇数序列 ");
    for (i = 31; i >= 0; i-=2){
        System.out.print((num >> i) & 1);
    }
    System.out.println();
    System.out.println("偶数序列 ");
    for (i = 30; i >= 0; i-=2){
        System.out.print((num >> i) & 1);
    }
}

13. 输出一个整数的每一位.

public static void main(String[] args) {
    int num = 123;
    System.out.println("百位:" + (num / 100));
    System.out.println("十位:" + (num / 10 % 10));
    System.out.println("个位:" + (num % 10));
}

14. 猜数字游戏.

游戏规则
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了” .

public static void main(String[] args) {
    Random random = new Random();
    Scanner scanner = new Scanner(System.in);
    int guessN = random.nextInt(100)+1;
    while (true) {
        System.out.println("请输入数字:");
        int num = scanner.nextInt();
        if (num > guessN) {
            System.out.println("猜大了");
        } else if (num < guessN) {
            System.out.println("猜小了");
        }else {
            System.out.println("猜中了,guessN is " + guessN);
            break;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值