黑马程序员技术交流社区

标题: 一个基础测试题 [打印本页]

作者: LPStone    时间: 2015-4-30 23:15
提示: 该帖被管理员或版主屏蔽
作者: LPStone    时间: 2015-4-30 23:17
自己顶一个:lol
作者: gzp123    时间: 2015-4-30 23:35
你可真牛逼,恩做得好

作者: yihuihua    时间: 2015-5-1 00:25
我也遇到了这题
public class test09
{
        public static void main(String[] args)
        {
                int d=1;
                boolean flag=true;
                while(flag)
                {
                        int m=d*(20-10);
                        if(d==7)
                                m=(m+20)/2;
                            d++;
                                if(m>100)
                                        break;
                }
                print(d);
               
        }
        public static void print(int a)
        {
                System.out.println(a);
        }
}
作者: 下一页5    时间: 2015-5-1 00:33
还没理解都我
作者: LPStone    时间: 2015-5-1 09:41
yihuihua 发表于 2015-5-1 00:25
我也遇到了这题
public class test09
{

恩 好办法 又学到了 定义一个标志作为while的判断条件 谢谢哦:handshake
作者: LPStone    时间: 2015-5-1 09:42
gzp123 发表于 2015-4-30 23:35
你可真牛逼,恩做得好

这个比较简单啦 相互学习:loveliness:
作者: 黄敬璇    时间: 2015-5-1 09:51
给楼主个大大的赞
作者: LPStone    时间: 2015-5-1 09:56
黄敬璇 发表于 2015-5-1 09:51
给楼主个大大的赞

谢谢 0424的大美女
作者: 爆炸头    时间: 2015-5-1 10:48
我的
class  Money
{
        public static void main(String[] args)
        {
                int day=0;
                double money=0;
                while(money<100)
                {
                        day++;
                       
                        if(day%7!=0)
                        money+=10;
                        if(day%7==0)
                        {
                                money+=20;
                                money/=2;
                        }
                        System.out.println(day+"---"+money);
                       
                }
                System.out.println(day+"天就攒了100块");
        }
}
作者: 王国库    时间: 2015-5-1 13:07
厉害。学习了
作者: LPStone    时间: 2015-5-3 22:25
王国库 发表于 2015-5-1 13:07
厉害。学习了

客气了 互相学习啦 我也是初学者
作者: 付长云    时间: 2015-5-3 23:14
和我一样不爱写注释
作者: 飒飒    时间: 2015-5-4 03:22
本帖最后由 飒飒 于 2015-5-4 03:25 编辑

public class AB_Demo
{
        public static void main(String[] args)
        {
                int sum = 0;    //sum表示存入的钱
                int count = 0;  //表示周数
                int day  =1;  //天数
                while(sum<100){
                        if(day!=7){
                                sum = sum+(20/2);
                                System.out.println("day="+day);
                                System.out.println("sum="+sum);
                                day++;
                        } else{
                                sum = (sum+20)/2;
                                count++;//星期数加一
                                day  =1;//day到7时表示一周过去了,便回到1
               
                        }
                }
                System.out.println(count*7+(--day));  //前面day自增一次了,所以这里减去一次
        }
}
作者: 大西洋    时间: 2015-5-4 08:59
爆炸头 发表于 2015-5-1 10:48
我的
class  Money
{

顶!你的算法太牛了! 可以问下是怎么想到的码?
具体思路能否透露?谢谢!

作者: wzb1991    时间: 2015-5-4 09:34
楼上都是大大啊,不错!顶、、、、
作者: ninjaes    时间: 2015-5-4 09:40
好好看看 学习 学习
作者: 痲ボㄋ.    时间: 2015-5-4 11:01
  1. class GetMoneyOfDay
  2. {
  3.         public static void main(String [] args){
  4.                 int i=1,j = 1,sum = 0;
  5.                 while(sum<100){
  6.                         if(i < 7*j){
  7.                                 sum = sum+10;
  8.                                 System.out.println("第"+i+"天"+"存"+sum+"元");
  9.                                 i++;
  10.                         }else if(i==7*j){
  11.                                 sum = (sum+20)/2;
  12.                                 System.out.println("第"+i+"天"+"存"+sum+"元");
  13.                                 i++;
  14.                                 j++;
  15.                         }
  16.                        
  17.                 }
  18.                 System.out.println("总共需要"+(i-1)+"天");
  19.         }
  20. }
复制代码

作者: 王大侠    时间: 2015-5-4 12:01
学习了            
作者: 一只玉米    时间: 2015-5-4 12:27
class  Xiaoming
{
        public static void main(String[] args)
        {
               
                int day=0;
                double sum=0;

                while(sum<100)
                {       
                         day++;
                         if(day%7!=0)
                         {
                           sum=sum+20/2;
                         }
                         else
                         {
                                sum=sum+20;
                                sum=sum/2;
                         }
                }
                System.out.print("所需天数:"+day+ "所存钱数:"+sum);
               
                  
        }
}



作者: 云淡风轻517    时间: 2015-5-4 12:38
挺不错的
作者: ddddk    时间: 2015-5-4 13:07
毕老师提过这一点 看帖之后让我印象又深刻了
作者: jinlong0999    时间: 2015-5-4 16:53
  1. public class  StoreMoney
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //int allowance = 20; //每天20元零用钱
  6.                 //int voerHead = 10; //周一到周六的开销
  7.                 //int target = 100; //目标:存够100元
  8.                 //storeMoney(allowance, overHead, target);//传入对应的参数

  9.                 //storeMoney(20, 10, 100);
  10.                 int days = storeMoney(20, 10, 100);
  11.                 System.out.println("小明需要"+ days +"天才能存够100元!");
  12.                
  13.                 //还可以传入别的参数,例如想让小明存够200元
  14.                 System.out.println("小名需要" + storeMoney(20, 10, 200) + "天才能存够200元!");
  15.         }
  16.         /*
  17.                 构造一个方法,传入每天的零用钱,周一到周六的开销和存钱的目标,返回存够钱的天数!
  18.         */
  19.         public static int storeMoney(int allowance, int overHead, int target){
  20.                 int day = 1;
  21.                 int money = 0;
  22.                 int store = allowance - overHead;//计算周一到周六每天能存多少钱
  23.                
  24.                 while(money < target){
  25.                         if(day % 7 == 0){//如果是周日,先把周日的零钱allowance存入再花去积蓄中的一半(所以这里存的是20,而不是10)
  26.                                 money = (money + allowance) / 2;
  27.                                 day++;
  28.                         }
  29.                         else{
  30.                                 while(money < target){
  31.                                         money = money + store;                
  32.                                         day++;
  33.                                 }
  34.                         }
  35.                 }
  36.                
  37.                 //System.out.println("小明需要"+day+"天能存够"+target+"元!");
  38.                 return day;
  39.         }
  40. }
复制代码

作者: LPStone    时间: 2015-5-4 20:56
付长云 发表于 2015-5-3 23:14
和我一样不爱写注释

呵呵 写注释是个好习惯 慢慢培养吧
作者: LPStone    时间: 2015-5-4 20:58
爆炸头 发表于 2015-5-1 10:48
我的
class  Money
{

大神写的代码质量就是高啊 !!




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