黑马程序员技术交流社区
标题:
让技术飞,每日一题
[打印本页]
作者:
钟林杰
时间:
2013-4-16 06:15
标题:
让技术飞,每日一题
/*
让技术飞
,每日一题:
今天这题也是来自于自考书上的题目,大家一起来试试吧,提高提高逻辑思维能力,
让你变得更聪明,让你的算法变得更精辟,让你的程序变得更高效。
题目:
草地上有一堆苹果,有一只猴子每天吃这堆苹果的一半又一个,5天后刚好吃完这堆苹果。
问这堆苹果原来共有多少个?猴子每天吃多少个?
(我的答案会在你回答之后公布哦! )
*/
[hide=d10]class Test
{
public static void main(String args[])
{
//首先我设了5个变量,分别是代表每一天未吃前的苹果数量
/*
apple1初始化为5的两个原因:
1、是因为总共有五天,它每天吃苹果至少一个,也就是一定会大于5.
2、是因为如果是1的话由于使用的是整数类型,运算第一天的时候就会进入死循环。
*/
int apple1 = 5,apple2 = 0,apple3 = 0,apple4 = 0,apple5 = 0;
while(true) //利用一个无限循环让苹果的数量一直增加,直到符合条件位置才停止
{
apple2 = apple1/2-1; //第一天剩余的苹果
apple3 = apple2/2-1; //第二天剩余的苹果
apple4 = apple3/2-1; //第三天剩余的苹果
apple5 = apple4/2-1; //第四天剩余的苹果
if((apple5/2-1)==0) //判断苹果是否在第五天吃完
break;
apple1++;
}
System.out.println("苹果共有:"+apple1+"个!");
System.out.println("第一天吃了:"+(apple1-apple2)+"个!");
System.out.println("第二天吃了:"+(apple2-apple3)+"个!");
System.out.println("第三天吃了:"+(apple3-apple4)+"个!");
System.out.println("第四天吃了:"+(apple4-apple5)+"个!");
System.out.println("第五天吃了:"+(apple5-0)+"个!");
}
}[/hide]
作者:
丘凤光
时间:
2013-4-16 07:42
应该是用递归的方法处理
作者:
张玉保
时间:
2013-4-16 07:56
where is the answer
作者:
梁耀今
时间:
2013-4-16 08:16
class AppleDemo
{
public static void main(String[] args)
{
int apple=0;
for(int x=0; x<5; x++)
{
apple = (apple + 1)*2;
}
System.out.println(apple);
}
}
很无聊
作者:
梁耀今
时间:
2013-4-16 08:18
楼主,怪不得你说会锻炼思维,你连反向思维都不会,哎!!!!!!
作者:
钟林杰
时间:
2013-4-16 08:29
梁耀今 发表于 2013-4-16 08:18
楼主,怪不得你说会锻炼思维,你连反向思维都不会,哎!!!!!!
:sleepy:是啊,太少练了,惯性!
作者:
钟林杰
时间:
2013-4-16 08:32
张玉保 发表于 2013-4-16 07:56
where is the answer
:sleepy:
这么大个红色字体也没看到啊!
作者:
chensc
时间:
2013-4-16 08:52
学习学习!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2