这是我当时提交的答案,给你参考一下
- public class Test10 {
- /**
- * 第10题:小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,
- * 从周一开始,小明需要多少天才能存够100元?
- *
- * @param args
- */
- public static void main(String[] args) {
- /**
- * 假设小明要存Y元,需要X天
- * 1.小明获得的总零花钱 :20*X;
- * 2.小明一个星期攒的零花钱 :(10*6+20) / 2 = 40
- * 3.小明要存Y元需要 Y / 40 个星期
- * 4.不算星期天小明每天攒 10块
- * */
- Scanner in = new Scanner(System.in);
- System.out.println("请输入小明要存多少钱:");
- int a = in.nextInt();
-
- int test = test(a);
- System.out.println("小明要存" + test + "天才能存够" + a + "元");
- }
- /**
- * @param Y 小明要存多少钱
- * @return 需要的天数
- */
- public static int test(int Y) {
- //需要的天数
- int days = 0;
- //只有需要几个星期
- int num = Y / 40;
-
- //如果少于一个星期则按天算
- if (num < 1) {
- days = Y / 10;
-
- //零头凑不够就再加一天
- if(days * 10 < Y){
- days++;
- }
- }else{
-
- int temp = Y % 40;
- //还需要多少天
- int remain = temp / 10;
-
- //零头凑不够就再加一天
- if((num*40+remain*10) < Y){
- remain++;
- }
-
- days = remain + num * 7;
- }
- return days;
- }
- }
复制代码 |