逻辑结构练习题

1.编写程序数一下 1到 100 的所有整数中出现多少个数字9
/*
* 1-100中9的出现次数
* */
public class Test01 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 10 == 9 || i/10%10 == 9) {
                count++;
            }
        }
        System.out.println(count);
    }
}
2.输出1000-2000的所有闰年
/*
* 输出1000-2000之间的所有闰年
* */
public class Test02 {
    public static void main(String[] args) {
        for (int i = 1000; i <= 2000; i++) {
            if (i % 4 == 0 ) {
                System.out.println(i);
            }
        }
    }
}
3.打印 1 - 100 之间所有的素数
/*
* 打印1-100之间所有的素数
* */
public class Test03 {
    public static void main(String[] args) {
        for (int i = 1; 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);
            }
        }

    }
}

4.给定一个数字,判定一个数字是否是素数
public class Test04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        boolean flag = true;
        if (a < 2) {
            flag = true;
        } else{
            for (int i = 2; i < a; i++) {
                if (a % i == 0) {
                    flag = false;
                    break;
                }
            }
        }
        if (flag) {
            System.out.println(a + "是素数");
        } else {
            System.out.println(a + "不是素数");
        }
    }
}
5.根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
public class Test05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int age = sc.nextInt();
        if (age>=0&&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("老年");
        } else {
            System.out.println("有误");
        }
    }
}
6.完成猜数字游戏 ,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等于的时候退出程序。
public class Test06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random ran = new Random();
        int guessNum = ran.nextInt(100);//生成随机数
        while (true) {
            System.out.println("请输入一个整数:");
            int num = sc.nextInt();
            if (num > guessNum) {
                System.out.println("大于");
            } else if (num < guessNum) {
                System.out.println("小于");
            } else {
                System.out.println("等于");
                break;
            }
        }
        sc.close();
    }
}
7.求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1+5+3?,则153是一个“水仙花数“。)
public class Test07 {
    public static void main(String[] args) {
        for (int i = 0; i <= 999; i++) {
            int ge = i % 10;
            int shi = (i % 100) / 10;
            int bai = i / 100;
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                System.out.println(i);
            }
        }
    }
}
8.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
public class myTest08 {
    public static void main(String[] args) {
        double sum = 0;
        double sum1 = 0;
        double sum2 = 0;
        for (double  i = 1; i <= 99; i+=2) {
            sum1 = sum1 + 1 / i;
        }
        for (double j = 2; j <= 100; j+=2) {
            sum2 = sum2 + 1 / j;
        }
        sum = sum1 - sum2;
        System.out.println(sum);
    }
}
9.求两个正整数的最大公约数
public class Test09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入两个正整数:");
        int a = sc.nextInt();
        int b = sc.nextInt();
        for (int i = (a + b) / 2; i > 0; i--) {
            if (a % i == 0 && b % i == 0) {
                System.out.println(i);
                break;
            }
        }
    }
}
10.求一个整数,在内存当中存储时,二进制1的个数。
public class Test10 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int count = 0;
        for (int i = 0; i < 32; i++) {
            if (((num >> i) & 1) == 1) {
                count++;
            }
        }
        System.out.println(num + "的二进制1个数为" + count);
    }
}
11.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
public class Test11 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        System.out.println("偶数位:");
        for (int i = 31; i >= 1; i = i - 2) {
            System.out.print(((num >> i) & 1));
        }
        System.out.println();
        System.out.println("奇数位:");
        for (int i = 30; i >= 0; i = i - 2) {
            System.out.print(((num>>i)&1));
        }
    }
}
12.编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序
public class Test12 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String inPut = "swz123456";
        for (int i = 1; i <= 3; i++) {
            System.out.println("请输入密码:");
            String passWord = sc.next();
            if (inPut.equals(passWord)) {
                System.out.println("密码正确");
                break;
            } else if (i < 3) {
                System.out.println("密码有误,你还有" + (3 - i) + "次机会");
            } else {
                System.out.println("密码有误,请重置密码");
            }
        }
    }
}

13.输出一个整数的每一位,如:123的每一位是1 , 2 , 3
public class Test13 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个整数:");
        String num = sc.next();
        int n = Integer.parseInt(num);
        if (n < 10) {
            System.out.println(num);
        } else {
            for (int i = 0; i < num.length(); i++) {
                int a = n % 10;
                n = n / 10;
                System.out.println(a);
            }
        }
    }
}
14.输出n*n的乘法口诀表,n由用户输入。
public class Test14 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个整数:");
        int n = sc.nextInt();
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                int mul = i * j;
                System.out.print(j + "*" + i + "=" + mul+" ");
            }
            System.out.println();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值