Java-循环-分支练习题2

11、【循环】计算1+3+5+…+99 的和

public class Demo11 {
    public static void main(String[] args) {
        //定义累加变量
        int sum = 0;

        //找到1-99之间所有的奇数
        for (int i = 1; i <= 99; i += 2) {
            sum += i;
        }

        //打印
        System.out.println("1+3+5+…+99 的和="+sum);
    }
}

12、【循环 + 分支】打印所有四位数中 个位 + 千位 == 百位 + 十位 的数字,要求:5个一行,中间用空格隔开,还要打印总数量
打印格式如下:
1010 1021 1032 1043 1054
1065 1076 1087 1098 1100
1111 1122 1133 1144 1155

以上满足条件的四位数总共有 615 个

public class Demo12 {
    public static void main(String[] args) {
        //计数
        int count = 0;

        //1. 打印所有的四位数
        for (int i = 1000; i <= 9999; i++) {
            //2. 对每个i拆分
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            int qian = i / 1000 % 10;
            //3. 打印个位 + 千位 == 百位 + 十位
            if (ge + qian == shi + bai) {
                System.out.print(i + " ");
                count++;//计数
                if (count % 5 == 0) {
                    //换行
                    System.out.println();
                }
            }
        }

        //2. 打印总数
        System.out.println("以上满足条件的四位数总共有 " + count + " 个");
    }
}

13、【if】根据工龄涨工资

​ 1) 根据工龄(整数)给员工涨工资(整数),工龄和基本工资通过键盘录入

​ 2) 涨工资的条件如下:
​ [10-15) +5000
​ [5-10) +2500
​ [3~5) +1000
​ [1~3) +500
​ [0~1) +200
​ 3) 如果用户输入的工龄为10,基本工资为3000,
程序运行后打印格式: “您目前工作了10年,基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元”

public class Demo13 {
    public static void main(String[] args) {
        //0. 创建键盘对象
        Scanner scanner = new Scanner(System.in);

        //1. 使用键盘对象接收数据
        System.out.println("请输入工资");
        int gz = scanner.nextInt();
        System.out.println("请输入工龄数");
        int gl = scanner.nextInt();


        //2. 执行判断
        if (gl >= 10 && gl < 15) {
            System.out.println("您目前工作了" + gl + "年,基本工资为 " + gz + "元, 应涨工资 5000元,涨后工资 " + (gz + 5000) + "元");
        } else if (gl >= 5 && gl < 10) {
            System.out.println("您目前工作了" + gl + "年,基本工资为 " + gz + "元, 应涨工资 2500元,涨后工资 " + (gz + 2500) + "元");
        } else if (gl >= 3 && gl < 5) {
            System.out.println("您目前工作了" + gl + "年,基本工资为 " + gz + "元, 应涨工资 1000元,涨后工资 " + (gz + 1000) + "元");
        } else if (gl >= 1 && gl < 3) {
            System.out.println("您目前工作了" + gl + "年,基本工资为 " + gz + "元, 应涨工资 500元,涨后工资 " + (gz + 500) + "元");
        } else if (gl >= 0 && gl < 1) {
            System.out.println("您目前工作了" + gl + "年,基本工资为 " + gz + "元, 应涨工资 200元,涨后工资 " + (gz + 200) + "元");
        }
    }
}

14、【嵌套循环】使用嵌套循环,打印2021年至2023年月份,格式:xxxx年x月

	20211202122021320214.....
    20211220221.....
    20221220231.....
    202312
public class Demo14 {
    public static void main(String[] args) {
        //外层控制年
        for (int i = 2021; i <= 2023; i++) {
            //外层控制月
            for (int j = 1; j <= 12; j++) {
                System.out.println(i + "年" + j + "月");
            }
            System.out.println("");
        }
    }
}

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

public class Demo15 {
    public static void main(String[] args) {
        //计数器
        int count = 0;

        //定义一个变量记录绳子当前长度
        int length = 3000;

        //循环去减
        while (length > 5) {
            length = length / 2;
            count++;
        }

        System.out.println(count + "天绳子就小于5米了");
    }
}

16、【for】假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。

public class Demo16 {
    public static void main(String[] args) {

        //定义变量累加
        double sum = 0;

        //定义变量记录每年的年薪
        double salary = 30000;

        //循环10
        for (int i = 1; i <= 10; i++) {
            salary = salary + salary * 0.06;
            sum += salary;//累加
        }

        System.out.println("10年之后的薪水是:" + salary);
        System.out.println("10年之后的总薪水是:" + sum);
    }
}

17、【while】读入一批正整数(以零为结束标志),求其中的奇数和。
输入32 33 50 34 65 67 0 输出165
输入13 15 17 30 35 0 输出80

public class Demo17 {
    public static void main(String[] args) {
        int sum = 0;

        //0. 创建键盘对象
        Scanner scanner = new Scanner(System.in);

        //1. 使用键盘对象接收数据
        while (true) {
            System.out.println("请输入一个正整数");
            int t = scanner.nextInt();

            //判断是否为0
            if (t == 0) {
                //做打印, 跳出程序
                break;
            } else {
                if (t % 2 != 0) {
                    sum += t;
                }
            }
        }

        //打印
        System.out.println("sum=" + sum);
    }
}

18、【if】税务部门征收所的税,规定如下:
1)收入在1000元以内(含1000),免征;
2)收入在1000~3000元以内(含3000),纳税额为收入的3%;
3)收入超过3000~5000元以内(含5000),纳税为收入的4%;
4)当收入超过5000元时,纳税为收入的6%。
请根据以上关系,输入收入m,输出应缴纳的税收tax。
输入900 2000 4000 6000
输出0 60 160 360

public class Demo18 {
    public static void main(String[] args) {
        //1. 键盘接收参数
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入收入");
        int m = scanner.nextInt();

        //2. 根据条件判断应缴纳的税收
        double tax = 0;
        if (m < 1000) {
            tax = 0;
        } else if (m > 1000 && m <= 3000) {
            tax = m * 0.03;
        } else if (m > 3000 && m <= 5000) {
            tax = m * 0.04;
        } else if (m > 5000) {
            tax = m * 0.06;
        }

        //3. 打印结果
        System.out.println(tax);

    }
}

19、【循环】给定一个正整数n,求它的因数个数。如6的因数为1、2、3、6,则因数个数为4。
输入12 输出6
输入30 输出8

public class Demo19 {
    public static void main(String[] args) {
        //计数
        int count = 0;

        int n = 30;

        for (int i = 1; i <= n; i++) {
            if (n % i == 0) {
                count++;
            }
        }

        System.out.println(n + "的因数的个数是:" + count);
    }
}

20、【while】小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话, 她都会花去6元钱,请问,经过多少天, 小芳才可以存到100元钱。

public class Demo20 {
    public static void main(String[] args) {
        //1. 钱总额
        double money = 0;
        //计数器
        int count = 0;

        //2. 循环
        while (money < 100) {
            money += 2.5;//每天增长2.5元
            count++;//累加天数
            if (count % 5 == 0) {
                money -= 6;
            }
        }

        //3. 打印count
        System.out.println(count);
    }
}
  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值