黑马程序员技术交流社区

标题: 存钱问题 [打印本页]

作者: Gyx    时间: 2014-12-20 20:29
标题: 存钱问题
小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
作者: 后悔药    时间: 2014-12-20 20:54
这是我当时提交的答案,给你参考一下
  1. public class Test10 {

  2.         /**
  3.          * 第10题:小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,
  4.          * 从周一开始,小明需要多少天才能存够100元?
  5.          *
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) {

  9.                 /**
  10.                  * 假设小明要存Y元,需要X天
  11.                  * 1.小明获得的总零花钱 :20*X;
  12.                  * 2.小明一个星期攒的零花钱 :(10*6+20) / 2 = 40
  13.                  * 3.小明要存Y元需要 Y / 40 个星期
  14.                  * 4.不算星期天小明每天攒 10块
  15.                  * */
  16.                 Scanner in = new Scanner(System.in);
  17.                 System.out.println("请输入小明要存多少钱:");
  18.                 int a = in.nextInt();
  19.                
  20.                 int test = test(a);
  21.                 System.out.println("小明要存" + test + "天才能存够" + a + "元");

  22.         }

  23.         /**
  24.          * @param Y 小明要存多少钱
  25.          * @return 需要的天数
  26.          */

  27.         public static int test(int Y) {
  28.                 //需要的天数
  29.                 int days = 0;
  30.                 //只有需要几个星期
  31.                 int num = Y / 40;
  32.                
  33.                 //如果少于一个星期则按天算
  34.                 if (num < 1) {
  35.                         days = Y / 10;
  36.                        
  37.                         //零头凑不够就再加一天
  38.                         if(days * 10 < Y){
  39.                                 days++;
  40.                         }
  41.                 }else{
  42.                        
  43.                         int temp = Y % 40;
  44.                         //还需要多少天
  45.                         int remain = temp / 10;
  46.                        
  47.                         //零头凑不够就再加一天
  48.                         if((num*40+remain*10) < Y){
  49.                                 remain++;
  50.                         }
  51.                        
  52.                         days = remain + num * 7;
  53.                 }

  54.                 return days;
  55.         }
  56. }
复制代码

作者: Gyx    时间: 2014-12-22 19:22
谢谢!我会继续努力
作者: LOVE你的ME    时间: 2014-12-22 21:29
我猛的一看以为是个脑经急转弯
作者: 牧歌    时间: 2014-12-22 21:34
脑子真是不够用。。拙计啊。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2