黑马程序员技术交流社区

标题: 基础测试-从周一开始,小明需要多少天才能存够100元? [打印本页]

作者: 李云贵    时间: 2014-7-20 07:42
标题: 基础测试-从周一开始,小明需要多少天才能存够100元?
/*
* 第十题:小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。
* 每到周日,小明拿到钱后会把所有零花钱花掉一半。
* 请编程计算,从周一开始,小明需要多少天才能存够100元?
*/
public class Test10{
       
        public static void main(String args[]){
               
                //定义整数变量,表示天数和存下的零花钱
                int day=0,money=0;
                while(money<100){
                        day++;
                        //周一到周六每天能存10元
                        if(day%7!=0){
                                money+=10;
                        } else{
                                //周日领20元后花总数的一半
                                money=(money+20)/2;
                        }

                }
                //输出
                System.out.printf("小明需要 %d 天存够100元", day);
               
        }
               
}


作者: 郑阳阳    时间: 2014-7-20 08:10
唉 技术分好难得啊
作者: 到处玩的    时间: 2014-8-4 11:14
程序:
public class Test10 {
        public static void main(String[] args) {
           int money =0;
           int day=0;
          
           while(money<=100){
                   ++day;
                  //平时存的钱
                   if(!(day%7==0)){
                           money += 20/2;
                           System.out.println("小明" + day + "天后可存够" + money +"元钱");
                   }          
                //每周日那20元不花,而是直接加在平时攒的钱里面一起花一半
                   if(day%7==0){
                           money = money/2;
                           System.out.println("本周小明" + day + "天后可存够" + money +"元钱");
                   }
                  
           }
           System.out.println("小明" + day + "天后可存够" + money +"元钱");
        }
}
运行结果:
小明1天后可存够10元钱
小明2天后可存够20元钱
小明3天后可存够30元钱
小明4天后可存够40元钱
小明5天后可存够50元钱
小明6天后可存够60元钱
本周小明7天后可存够30元钱
小明8天后可存够40元钱
小明9天后可存够50元钱
小明10天后可存够60元钱
小明11天后可存够70元钱
小明12天后可存够80元钱
小明13天后可存够90元钱
本周小明14天后可存够45元钱
小明15天后可存够55元钱
小明16天后可存够65元钱
小明17天后可存够75元钱
小明18天后可存够85元钱
小明19天后可存够95元钱
小明20天后可存够105元钱
小明20天后可存够105元钱

作者: 到处玩的    时间: 2014-8-4 11:15
public class Test10 {
        public static void main(String[] args) {
           int money =0;
           int day=0;
          
           while(money<=100){
                   ++day;
                  //平时存的钱
                   if(!(day%7==0)){
                           money += 20/2;
                           System.out.println("小明" + day + "天后可存够" + money +"元钱");
                   }          
                //每周日那20元不花,而是直接加在平时攒的钱里面一起花一半
                   if(day%7==0){
                           money = money/2;
                           System.out.println("本周小明" + day + "天后可存够" + money +"元钱");
                   }
                  
           }
           System.out.println("小明" + day + "天后终于存够" + money +"元钱了");
        }
}
小明1天后可存够10元钱
小明2天后可存够20元钱
小明3天后可存够30元钱
小明4天后可存够40元钱
小明5天后可存够50元钱
小明6天后可存够60元钱
本周小明7天后可存够30元钱
小明8天后可存够40元钱
小明9天后可存够50元钱
小明10天后可存够60元钱
小明11天后可存够70元钱
小明12天后可存够80元钱
小明13天后可存够90元钱
本周小明14天后可存够45元钱
小明15天后可存够55元钱
小明16天后可存够65元钱
小明17天后可存够75元钱
小明18天后可存够85元钱
小明19天后可存够95元钱
小明20天后可存够105元钱
小明20天后终于存够105元钱了

作者: 长跑※终点    时间: 2014-8-4 13:01
你这不是已经给了答案了么
作者: 赵顺超    时间: 2014-8-4 14:26
到处玩的 发表于 2014-8-4 11:14
程序:
public class Test10 {
        public static void main(String[] args) {

第七天,他妈妈给钱吧?
作者: 渴望学习    时间: 2014-8-4 15:14
路过~~~~~
作者: 到处玩的    时间: 2014-8-4 16:04
赵顺超 发表于 2014-8-4 14:26
第七天,他妈妈给钱吧?

嗯,应该是这样的
//每周日那20元不花,而是直接加在平时攒的钱里面一起花一半
                   if(day%7==0){
                           money = (money+20)/2;
                           System.out.println("本周小明" + day + "天后可存够" + money +"元钱");
                   }
                  
作者: Caincxy    时间: 2014-8-4 16:25
学习了啊.........
作者: huanglyhf    时间: 2014-8-4 16:51
都是高手啊!
作者: GoodBoy123    时间: 2014-8-4 17:11
不可能,小明妈妈哪可能会给这么多的零花钱给小明.
作者: rekirt    时间: 2014-8-4 19:24
GoodBoy123 发表于 2014-8-4 17:11
不可能,小明妈妈哪可能会给这么多的零花钱给小明.

小明是土豪,,,,
作者: /aiq玩完?/aiq    时间: 2014-8-4 21:38
/*
*  小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。
* 每到周日,小明拿到钱后会把所有零花钱花掉一半。
* 请编程计算,从周一开始,小明需要多少天才能存够100元?
*
* 分析:周一到周六每天零花钱加10,所以money+=10;周日的零花钱花一半即(10*day/2)
*/
public class Test1 {

        public static void main(String[] args) {
                int day=1;
                int money=0;
                while (money<100) {
                       
                        if (day%7!=0) {
                                money+=10;
                        }
                        else{
                                money=5*day;//这里是简化式(10*day/2)
                        }
                        day++;
                }
                System.out.println("小明要"+day+"天存够100元");
        }
}
我也是新手,刚做的,不好的希望大神帮忙指点
作者: /aiq玩完?/aiq    时间: 2014-8-4 21:42
我的错了 ,是day-1天,或者从0开始:L
作者: /aiq玩完?/aiq    时间: 2014-8-4 21:49
到处玩的 发表于 2014-8-4 11:14
程序:
public class Test10 {
        public static void main(String[] args) {

你忘了星期天的20元零花钱了。
作者: 到处玩的    时间: 2014-8-5 10:58
/aiq玩完?/aiq 发表于 2014-8-4 21:49
你忘了星期天的20元零花钱了。

嗯,应该是这样的
//每周日那20元不花,而是直接加在平时攒的钱里面一起花一半
                   if(day%7==0){
                           money = (money+20)/2;
                           System.out.println("本周小明" + day + "天后可存够" + money +"元钱");
                   }
作者: /aiq玩完?/aiq    时间: 2014-8-5 11:01
到处玩的 发表于 2014-8-5 10:58
嗯,应该是这样的
//每周日那20元不花,而是直接加在平时攒的钱里面一起花一半
                   if(da ...

恩,所以我的没应该改一下就没问题了吧!:lol
作者: zhuohong_xiao    时间: 2014-8-5 11:43
rekirt 发表于 2014-8-4 19:24
小明是土豪,,,,

小明他妈是土豪。
作者: 小洁呵呵    时间: 2014-8-6 14:02
public static void main(String[] args){
作者: 小洁呵呵    时间: 2014-8-6 14:03
public static void main(String[] args){
作者: 李章敏    时间: 2014-8-6 14:45
学习了                                                   
作者: 想做开发    时间: 2014-8-6 17:01
/aiq玩完?/aiq 发表于 2014-8-4 21:38
/*
*  小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。
* 每到周日,小明拿 ...

你这个第n天攒够100,最后是不是会输出n+1天啊····我也是新手。来学习的
作者: 桂何钢    时间: 2014-8-6 17:34
/aiq玩完?/aiq 发表于 2014-8-4 21:42
我的错了 ,是day-1天,或者从0开始

这样应该就是正确的了
作者: diaolinan    时间: 2014-10-22 16:32
这不是应该在第7天的时候就存了40  = (60+20)/2
作者: aawenwei    时间: 2015-2-19 19:58
小明他妈是土豪。。。。。。。。。。。。。。。。
作者: 蓝玉    时间: 2015-3-7 15:31
class savemoney1
{
        public static int Save()
        {
                int sum=0;
                int i=1;
                while(sum<100)
                {
                        //当到周日时会剩下一半
                        if(i%7==0)
                        {
                                sum+=20;
                                sum=sum/2;
                    }
                        //平日只花10元
                        else
                        {
                                sum+=10;
                        }
                        i++;
                }
                 //减去多加的1
                return i-1;
        }
}

class savemoney2
{
        public static int Save()
        {
                int sum=0;
                int i=1;
                while(sum<100)
                {
                         sum+=20;
                      //当到周日时会花一半
                      if(i%7==0) sum/=2;
                      //平日只花10元
                      else sum-=10;
                      i++;
                    }
                    //减去多加的1
                return i-1;
        }
}
public class Test10
{
        public static void main(String args[])
        {
                 System.out.println("小明需要"+savemoney1.Save()+"天能存够100元。");   
                 System.out.println("小明需要"+savemoney2.Save()+"天能存够100元。");   

        }       
}
作者: ITheima-Ssmnr    时间: 2015-4-13 19:15
到处玩的 发表于 2014-8-4 11:14
程序:
public class Test10 {
        public static void main(String[] args) {

你这是什么算法?  第七天的money不对。怎么丢十块钱?Can you tell me ?
作者: AngelaBaby_TXS    时间: 2015-5-16 14:55
到处玩的 发表于 2014-8-5 10:58
嗯,应该是这样的
//每周日那20元不花,而是直接加在平时攒的钱里面一起花一半
                   if(da ...

对,这个周日也要算钱的,应该是14天
作者: AngelaBaby_TXS    时间: 2015-5-16 14:59
AngelaBaby_TXS 发表于 2015-5-16 14:55
对,这个周日也要算钱的,应该是14天

是12天 还需要计算如果当天给了钱就够了100块钱也算攒的钱 所以到12天妈妈给了20块钱就已经到了一百了
作者: 路途遥远    时间: 2015-6-11 22:40
geli  df asd f
作者: mpx    时间: 2015-6-15 18:26
题目有歧义啊,平日里小明花的是积攒钱的一半呢?还是母亲给的20元的一半?要是前者那么第一天10元,第二天就是(10+20)/2=15元。。。。
作者: dajiaoya    时间: 2015-7-17 12:23
赞一个,好
作者: fantianfei    时间: 2015-8-18 19:11
13天,楼主的程序就是对的,
作者: 边情2015    时间: 2015-10-19 21:47
都搞那么复杂,应该是第13天就有100了。
作者: 传奇查    时间: 2015-11-30 00:40
  1. 9、 小明的妈妈每天会给他20元零花钱。
  2. 平日里,小明先花掉一半,再把一半存起来。
  3. 每到周日,小明拿到钱后会把所有零花钱花掉一半。
  4. 请编程计算,从周一开始,小明需要多少天才能存够100元?
复制代码
  1. public class Test09 {
  2.         public static void main(String[] args) {
  3.                 int day = 0;
  4.                 int money =0;
  5.                 while(true){
  6.                         day++;
  7.                         money=money+20;//早上老妈给钱
  8.                         System.out.println(day+":"+money);//每天早上能累计到的钱数
  9.                         if(money>=100){
  10.                                 break;
  11.                         }
  12.                         if(day%7==0){
  13.                                 money=money/2;//周末开始败家
  14.                         }else{
  15.                         money=money-10;//平时晚上花钱
  16.                         }
  17.                 }
  18.         }
  19. }
复制代码
输出结果:
1:20
2:30
3:40
4:50
5:60
6:70
7:80
8:60
9:70
10:80
11:90
12:100

答案是:第12天早上妥妥的100块~
不知道你们这么算出那么奇怪的天数的~





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