海滩上有一堆桃子,5只猴子来分 谈谈我的理解

今天偶然看到了一个有意思的题目,原题如下

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,
这只猴子把多的一 个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,
又多了一个,它同样把多的一个扔入海中 ,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子

解题如下

public class FiveMonkeys {

public static void main(String[] args) {
//感觉需要怎么理解这个题目
// 如果是最后一个猴子轮到它的时候,只有一个,那就要循环4次   轮到它的时候,只剩一个了
// 如果是最后一个猴子也是分成五份,它取其中一份,把多余的一个丢了,那就是5次    轮到它的时候,它还能分成五份 然后扔一个 代表最少有6个
System.out.println(technology(5)); // 第一种
System.out.println(technology2(5));//第二种
}

private static int technology(int monkeysNum) {
int count=1;//最少就是一个
for(int i= 0;i<monkeysNum;i++) {

count=count*5+1;

}
return count;

}

private static int technology2(int monkeysNum) {
int count=1;//最少就是一个
for(int i= 0;i<monkeysNum-1;i++) {

count=count*5+1;

}
return count;

}


}

 

 

 

还有一个方法是穷举法,就是从0开始一个一个找,个人不是很理解这种做法,感觉很浪费时间

 

posted @ 2020-05-27 16:12  喜欢22度的晴天  阅读(1516)  评论(0编辑  收藏  举报