黑马程序员技术交流社区

标题: 黑马基础测试题 [打印本页]

作者: 朱婵    时间: 2014-2-20 12:40
标题: 黑马基础测试题
小明的妈妈每天会给他20元零花钱。
平日里,小明先花掉一半,再把一半存起来。
每到周日,小明拿到钱后会把所有零花钱花掉一半。
请编程计算,从周一开始,小明需要多少天才能存够100元?

  1. public class Test10 {
  2.         // 定义一个money 表示存钱数
  3.         private static int Mymoney = 0;
  4.         public static void main(String[] args) {
  5.                 // 定义一个日期数组
  6.                 int day[] = new int[] { 1, 2, 3, 4, 5, 6, 7 };
  7.                 // 定义count 统计天数
  8.                 int count = 0;
  9.                 boolean flag = true;
  10.                 while(flag){
  11.                         for(int i = 0; i< day.length; i++) {
  12.                                 int returnMoney = money(day[i]);
  13.                                 if(returnMoney >= 100){
  14.                                         flag = false;
  15.                                         continue;
  16.                                 }
  17.                                 count ++;
  18.                         }
  19.                 }
  20.                 System.out.println("小明存够100块钱需要:" + count+"天");
  21.         }

  22.         public static int money(int day) {
  23.                 // 计算每天小明妈妈给的钱 20元
  24.                 switch (day) {
  25.                 case 1:
  26.                         Mymoney += 10;
  27.                         break;
  28.                 case 2:
  29.                         Mymoney += 10;
  30.                         break;
  31.                 case 3:
  32.                         Mymoney += 10;
  33.                         break;
  34.                 case 4:
  35.                         Mymoney += 10;
  36.                         break;
  37.                 case 5:
  38.                         Mymoney += 10;
  39.                         break;
  40.                 case 6:
  41.                         Mymoney += 10;
  42.                         break;
  43.                 case 7:
  44.                         Mymoney = (Mymoney + 20) / 2;
  45.                         break;
  46.                 }
  47.                 return Mymoney;
  48.         }
  49. }
复制代码





作者: →★稻草人☆    时间: 2014-2-20 14:22
public static void show()
        {
                int  money=0;
                for (int x=1;money<100 ;x++ )//money是存的钱,定义它小于100,是因为它还要加上当天妈妈给的20块
                {
                        if(x%7==0)
                        {
                                money=(money+20)/2;
                        }
                        else
                        {
                            money=money+10;
                        }
                        System.out.println(x+"...."+num);
                }       
        }
作者: e.c    时间: 2014-2-20 14:29
→★稻草人☆ 发表于 2014-2-20 14:22
public static void show()
        {
                int  money=0;

不错。大姆指
作者: →★稻草人☆    时间: 2014-2-20 14:42
e.c 发表于 2014-2-20 14:29
不错。大姆指

说实话,我也不知道我这思路到底对不对,不知你们还有没有别的方法可以做这道题。
作者: e.c    时间: 2014-2-20 15:34
→★稻草人☆ 发表于 2014-2-20 14:42
说实话,我也不知道我这思路到底对不对,不知你们还有没有别的方法可以做这道题。 ...

思路肯定可以,我用的是wheil(true){if()break;}
没你的方法好。

作者: skyname    时间: 2014-2-20 18:44
public class saveMoney1 {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println("存100元所需的天数为:  "+saveMoney1.getMoney());
        }
        public static int getMoney(){
                int myMoney=0;
                int day=1;
                while(myMoney<100){    //每7天为一个周期,存的钱数不足100,就继续循环
                        if(day%7!=0){
                                myMoney+=10;
                        }else{
                                myMoney+=20;
                                myMoney=myMoney/2;
                        }
                        day++;
                }
                return day-1;  //一定要注意,由于day++,所以当myMoney=100的时候,day多加了一天,一定要减去
        }
}

作者: 山治0712    时间: 2014-2-20 19:21
        public static void main(String[] args)
        {
                //money:存的总钱
                //day:存钱的天数
                int money = 0, day = 0;
                while(money < 100) {
                        day++;
                        if(day%7 == 0){
                                money = (money+20) / 2;
                                continue;
                        }
                        money += 10;
                       
                }
                System.out.println("小明存100元需要"+day+"天!");
        }
作者: 丁香花    时间: 2014-2-20 20:16
→★稻草人☆ 发表于 2014-2-20 14:22
public static void show()
        {
                int  money=0;

//你思路没问题不过打印结果有问题  我优化了一下

class TestDemo3
{public static void main(String[] args)



        {
                int  money=0;
                                int day=1;
                for (int x=1;money<100 ;x++ )
                {
                        if(x%7==0)
                        {
                                money=(money+20)/2;
                        }
                        else
                        {
                            money=money+10;
                        }
                        day++;
                                               
                }        System.out.println(day);
        }
                }
作者: 丁香花    时间: 2014-2-20 20:19
→★稻草人☆ 发表于 2014-2-20 14:22
public static void show()
        {
                int  money=0;

//你思路没问题不过打印结果有问题  我优化了一下
//从新改了下  完整版的

class TestDemo3
{public static void main(String[] args)



        {
                int  money=0;
                                int day=0;
                for (int x=1;money<100 ;x++ )
                {
                        if(x%7==0)
                        {
                                money=(money+20)/2;
                        }
                        else
                        {
                            money=money+10;
                        }
                        day++;
                                                
                }        System.out.println(day);
        }
                }
作者: 伪猫君    时间: 2014-10-1 17:53
基础题也可以拿来讨论的?
作者: 祁祯祥    时间: 2014-12-19 21:40
很烧脑啊




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