黑马程序员技术交流社区
标题:
存款问题,请教各位大虾帮忙解释下程序
[打印本页]
作者:
胡建伟
时间:
2013-11-7 23:16
标题:
存款问题,请教各位大虾帮忙解释下程序
本帖最后由 胡建伟 于 2013-11-9 09:52 编辑
需求:小明的妈妈每天会给他20元零花钱,小明每天花一半存一半,每过7天小明又会把所有存款花掉一半,请编程计算小明需要多少天才能存够100元?
public class cunkuan {
public static void main(String args[]){
int x=0;//定义天数
for (int sum=0;sum<=100;sum+=(20/2))//???
{
if(x%7==0){
sum=sum/2;//每过七天的存款
}
x++;
}
System.out.println("小明需要"+x+"才能存够100元");
}
}
请各位大虾帮忙分析下这里的for循环,不太明白,请详细解释下哦
作者:
Sasson
时间:
2013-11-7 23:30
//需求:小明的妈妈每天会给他20元零花钱,小明每天花一半存一半,每过7天小明又会把所有存款花掉一半,请编程计算小明需要多少天才能存够100元?
public class cunkuan {
public static void main(String args[]){
int x=0;//定义天数
for (int sum=0;sum<=100;sum+=(20/2))//把存款sum初始化为0,循环条件为sum<=100,更新为sum = sum + (20/2)
{ //第一次循环,sum = 0 + 10 = 10,执行x++, x = 1 表示第一天
if(x%7==0){ //第二次循环,sum = 10+ 10 = 20, 执行x++, x = 2 表示第二天·······
sum=sum/2;//每过七天的存款
}
x++;
}
System.out.println("小明需要"+x+"才能存够100元");
}
}
作者:
零下五度的水
时间:
2013-11-7 23:38
for(起始存款为0;存款<=100;存款=存款+10){
如果是星期天{
存款=存款/2
}
天数=天数+1;
} //如果不是星期天,存款=存款+10,天数=天数+1
//如果是星期天,存款=存款/2+10,天数=天数+1
//如果存款>100,跳出循环
作者:
唐宋元明清
时间:
2013-11-8 00:04
这个循环是按存款额来做条件判断的。
基本的点是每次循环完就是过了1天x++,每次过完一天都会再存入10元sum+=(20/2)
即每天都会存10块是不会变的。不管你花多少。
然后每7天 x%7==0 都会花掉当前存款的一半sum=sum/2。
条件都全了,就让计算机算就好了。存款<=100,那就继续过日子,过1天存10块。
作者:
李慧声
时间:
2013-11-8 00:35
用线程去做吧 生产者--消费者模型~~~
作者:
寻找资拥。
时间:
2013-11-9 17:34
对于初学者,我觉得以下方式可能让你更好理解一点。
int sum=0;//存钱的篮子
int day=1;//星期几的天数
int num=0;//累加的天数
int money=0;//钱
while(true){
if(day%7!=0){//星期一到星期六
money=20;//每天给20块。
sum+=10;//每天存10块。
num++;
}else{
money=20;//给他20元
sum=(sum+money)/2;//用掉一半
num++;
}
if(day>7){
day=1;
}
if(sum==100){
System.out.println("进入");
break;
}
day++;
}
System.out.println(num);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2