A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Gyx 中级黑马   /  2014-12-20 20:29  /  928 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?

4 个回复

倒序浏览
这是我当时提交的答案,给你参考一下
  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:56
藤椅
谢谢!我会继续努力
回复 使用道具 举报
我猛的一看以为是个脑经急转弯
回复 使用道具 举报
脑子真是不够用。。拙计啊。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马