题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
程序分析
解题思路:
- 1.设当前天桃子数n,后一天的桃子数=(n-1)/5*4;
- 2.定义一个一直为真的循环,让循环一直去找一个数,如果这个数合格的话,内循环的i一定是5.
代码实现
public class Test {
public static void main(String[] args) {
/**
*
* 题目:海滩上有一堆桃子,五只猴子来分。
* 第一只猴子把这堆桃子凭据分为五份, 多了一个,这只猴子把多的一个扔入海中,拿走了一份。
* 第二只猴子把剩下的桃子又平均分成五份,
* 又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
*
* 实现思路
* 1.设当前天桃子数n,后一天的桃子数=(n-1)/5*4
* 2.定义一个一直为真的循环,让循环一直去找一个数,如果这个数合格的话,内循环的i一定是5
*/
int i = 0;
int temp = 1;
int count = 1;//桃子数
while(true){
temp = count;
for (i = 0; i < 5; i++) {
if ((temp - 1)%5 == 0){
temp = (temp - 1)/5*4;
}else
break;
}
if (i == 5 && temp > 0){
break;
}
count++;
}
System.out.println("海滩上原来最少有:"+count+"个桃子。");
}
}