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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明天你好,微笑 中级黑马   /  2015-8-18 21:22  /  662 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

12 个回复

倒序浏览
求快速的解答,大神们求解答
回复 使用道具 举报
粗一看,递归。然后加个计数器,记录星期
回复 使用道具 举报
楼主可以参考下
  1. public class Test10 {
  2.         /*
  3. 10、 小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。
  4.         每到周日,小明拿到钱后会把所有零花钱花掉一半。
  5.         请编程计算,从周一开始,小明需要多少天才能存够100元?
  6.          * */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 int sum =0;                  //定义储蓄总额
  10.                 int week = 0;                                 
  11.                 int day =0;                  //定义所用天数
  12.                 ok:
  13.                 while (sum<=100){
  14.                          day = 0;
  15.                         while(day<6){
  16.                                 sum = sum +20/2;
  17.                                 day=day+1;
  18.                                 System.out.println("第"+week+"周又第"+day+"天存了"+sum);
  19.                                 if (sum>=100)        //判断是否已存够100元
  20.                                         break ok;        //是就跳出所有循环   
  21.                         }
  22.                         sum=(sum+20)/2;
  23.                         week = week +1;
  24.                         System.out.println("第"+week+"周存了"+sum);
  25.                 }
  26.                 System.out.println("存够100所需时间为"+(week*7+day));
  27.         }
  28. }
复制代码
回复 使用道具 举报
这个题目刘意的视频有讲过类似的,你可以看看那个视频
回复 使用道具 举报
自己编的,楼主看看,有不足的地方请指正
  1. public class Test10 {

  2.         public static void main(String[] args) {
  3.                 money();
  4.         }
  5.         public static void money(){
  6.                 int sum = 0;  //总钱数
  7.                 int count = 1;        //计数器,用于计算天数
  8.                 while(sum < 100){                                                               
  9.                         if(count%7 != 0){  //周内总钱数加10
  10.                         sum += 10;
  11.                         }else {
  12.                                 sum = sum + 20;   //周末先加20再除以2
  13.                                 sum /= 2;
  14.                         }
  15.                         ++count;
  16.                 }
  17.                 System.out.println("需要"+count+"天才能存够"+sum+"元");
  18.         }
  19. }
复制代码
回复 使用道具 举报
基础测试题啊,我的答案:
  1. package com.itheima;

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

  8. public class Test9 {

  9.        
  10.         public static void main(String[] args) {
  11.                
  12.                 int sum = 0;
  13.                 int count = 0;
  14.                 while(sum<100){//循环终止条件
  15.                        
  16.                         if(++count%7!=0)//周日的情况
  17.                                 sum+=20/2;
  18.                         else            //其他情况  
  19.                                 sum = (sum +20)/2;
  20.                                
  21.                 }
  22.                  System.out.println(count);
  23.         }

  24. }
复制代码
回复 使用道具 举报
for(i=1;i<=7;i++)
{
  
   if(money<7)
   money=money+10;
   else
   money=money/2;
   if(money==100)
    break;
}   思想在这
回复 使用道具 举报
学习了,第一次看到!
回复 使用道具 举报
和买可乐一个思想
回复 使用道具 举报
for(i=1;i<=7;i++)
{
  
   if(money<7)
   money=money+10;
   else
   money=money/2;
   if(money==100)
    break;
}   
回复 使用道具 举报
我跟你们说咯,其实吧,我觉得吧,这题要较真起来不能按你们那个存够100块钱为标准。
为什么呢,因为他每天都能拿20元,说明他前一天如果存了80元,那第二天一早上就有一百了,这时候就已经符合条件了,可如果你们再花掉10块或者一半,就不符合条件了。递归啥的我看的头晕,直接不用100用80做判断的条件比较好。
回复 使用道具 举报
笨方法,循环操作

82}[`XCJ5CBFC`J6$]N_]ON.png (218.82 KB, 下载次数: 5)

82}[`XCJ5CBFC`J6$]N_]ON.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马