Java初学者练习题

1.编写一个应用程序,使用if else语句判断某年份为闰年

通用规则:

能被4整除并且不能被100整除 或者能被400整除的年份--->闰年

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

 2.编写一个应用程序,使用switch case计算某天是该年中的第几天

  把该天之前的月份天数累加起来+今天的日子就是某天是该年中的第几天

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scanner.nextInt();
        System.out.println("请输入月份:");
        int month = scanner.nextInt();
        System.out.println("请输入日期:");
        int day = scanner.nextInt();
        int sum = 0;
        switch (month) {
            case 12: sum +=30;
            case 11: sum +=31;
            case 10: sum +=30;
            case 9: sum +=31;
            case 8: sum +=31;
            case 7: sum +=30;
            case 6: sum +=31;
            case 5: sum +=30;
            case 4: sum +=31;
            case 3: sum +=28;
            case 2: sum +=31;
            case 1: sum +=day;
            default:
                break;
        }
        System.out.println(year+"年"+month+"月"+day+"日");
        System.out.println("是"+year+"年的第"+sum+"天!");

 3.编写一个应用程序,1 1 2 3 5 8 13...对以上一组数字找规律,找出1000以内都有哪些数字

        int i = 1;
        int j = 1;
        while (i<1000){
            System.out.println(i+" ");
            i+=j;
            j=i-j;
        }

4.编写一个应用程序,打印出1000以内的所有的水仙花数,

  水仙花数是指一个三位数,其各位数字立方和等于这个数本身,如153=1*1*1+5*5*5+3*3*3

        int z = 100;
        int sum3 = 0;
        do{
            if (z == 1000) {
                break;
            }
            int bai = z / 100;
            int shi = z / 10 % 10;
            int ge = z % 10;
            if (bai*bai*bai+shi*shi*shi+ge*ge*ge == z) {
                System.out.println(z+"它是一个水仙花数");
            }
            z++;
        }while(true);

5.编写一个应用程序,找出1000以内所有的完美数,

  完美数是指每个因子之和等于该数本身,如6= 1+2+3

        for (int i = 1; i < 1000; i++) {
            int sum = 0;
            for (int j = 1; j < i; j++) {
                if (i%j==0){
                    sum=sum+j;
                }
            }
            if (sum==i){
                System.out.println("1000以内的完美数"+i);
            }
        }

6. 计算一个人的个人所得税

   规则如下:

5000元以下是免征个税的

超过5000元的需要缴纳个税的

应纳个人所得税税额需要先扣除五险一金的(五险一金扣除比例为工资收入的22.2%)

个税缴纳比例区间如下:

            区间          税率     速算扣除数

   缴纳基数<=1500      3%          0

   缴纳基数<=4500      10%         105

   缴纳基础<=9000      20%         555

   缴纳基数<=35000     25%         1005

   缴纳基数<=55000     30%         2755

   缴纳基数<=80000     35%         5505

   缴纳基数>8000       45%         13505

应纳个人所得税税额 = 应纳税所得额 * 适用税率 - 速算扣除数

        Scanner sc = new Scanner(System.in);
        double salary = sc.nextDouble();
        double money =salary - salary*0.222;
        double tax = money-5000;
        if (tax>0&tax<1500){
            System.out.println("不需要缴纳个税");
        }else if (tax<=1500){
            System.out.println("应缴个税"+(tax*0.03));
        }else if (tax<=4500){
            System.out.println("应缴个税"+(tax*0.1-105));
        }else if (tax<=9000){
            System.out.println("应缴个税"+(tax*0.2-555));
        }else if (tax<=35000){
            System.out.println("应缴个税"+(tax*0.25-1005));
        }else if (tax<=55000){
            System.out.println("应缴个税"+(tax*0.30-2755));
        }else if (tax<=80000){
            System.out.println("应缴个税"+(tax*0.35-5505));
        }else{
            System.out.println("应缴个税"+(tax*0.45-13505));
        }

7. 编写一个应用程序,实现一个猜数字游戏

游戏规则如下:

游戏开始,玩家有五次机会猜程序当中随机的数字,如果猜小了,程序提示猜小了

如果猜大了,程序提示猜大了,如果猜中了,程序提示"你太棒了";

如果程序到第四次的时候还没有采用,程序需要提示:"留给你的机会不多了,请谨慎";

如果五次猜完,玩家依然没有猜中,本次数字猜谜结束,下一轮数字猜谜开始

游戏直到玩家猜中程序当中随机的数字才会结束。

备注:每一轮游戏随机的数字都是新的数字

        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        boolean flag = false;
        int index = 1;
        while(true) {
            System.out.println("第"+index+"轮猜谜游戏开始:");
            int ranNum = random.nextInt(100)+1;
            System.out.println("随机数字已生成,请开始猜谜:");
            int count = 1;
            while(true){
                System.out.println("请输入一个整数:");
                int inputNum = scanner.nextInt();
                if (inputNum == ranNum) {
                    System.out.println("你太棒了");
                    flag = true;
                    //break;
                } else if (inputNum > ranNum) {
                    System.out.println("猜大了");
                } else {
                    System.out.println("猜小了");
                }
                if (count == 4) {
                    System.out.println("留给你的机会不多了,请谨慎");
                }
                if (count == 5) {
                    System.out.println("第" + index + "轮猜谜游戏结束!下一轮游戏准备开始:");
                    System.out.println("随机的数字是:" + ranNum);
                    break;
                }
                count++;
            }
            if (flag) {
                break;
            }
            index++;
        }

8. 编写一个应用程序,实现100元找零钱的功能,零钱有1元、2元、5元、10元、50元

问一张100元有几种兑换零钱的方式?

        int count=0;
        int money = 100;
        for (int i = 0; i <= money; i+=50) {
            for (int j = 0; j <= money; j+=10) {
                for (int k = 0; k <= money; k+=5) {
                    for (int l = 0; l <= money; l+=2) {
                        for (int m = 0; m <= money; m+=1) {
                            if (money-(i + j + k + l + m)==0){
                                System.out.println(money+"元="+ (i/50)+"个50元"+(j/10)+"个10元"+(k/5)+"个5元"+(l/2)+"个2元"+(m/1)+"个1元"+"\n");
                                count++;
                            }
                        }
                    }
                }
            }
        }
        System.out.println("100元一共有"+count+"种方法");

9. 编写一个应用程序,求出一只猴子它总共摘了多少个桃子

    规则如下:

有一只猴子,摘了很多桃子,他每天吃掉一些,

剩下的桃子比之前的全部的一半少一个。他吃了十天才吃完。

请问他一共摘了多少个桃子?

        int num = 0;
        for (int i = 1; i <= 10; i++) {
            num = (num+1)*2;
        }
        System.out.println(num);

10. 编写一个应用程序,实现求 s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字

例如:2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制

        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入a的值:");
        int a = scanner.nextInt();
        System.out.print(a + "\n");
        System.out.print("请输入要相加的次数:");
        int count = scanner.nextInt();
        System.out.print(count + "\n");
        // 存储相加的结果
        int s = 0;
        int temp = a;
        for (int i = 0; i < count; i++) {
            if(i > 0){
                a = 10 * a + temp;
            }
            s = s + a;
        }·
        System.out.println("s的值为:" + s);

以上就是本次的练习题了,下次再见。

你可能感兴趣的:(java)