package cn.itcast.day22.test;
public class PeachTest {
/*
* 面試題
1.海灘上有一堆桃子, 有5隻猴子來分這些桃子.
第一隻猴子來到海灘, 發現瞭桃子, 將桃子分成5份, 發現多瞭1個, 吃掉然後拿走瞭一份.
第二隻猴子來到海灘, 又發現瞭桃子, 將剩下的桃子又分成5份, 發現還是多瞭1個, 吃掉然後拿走瞭一份.
… 後面三隻猴子都是這麼做的
問: 海灘上最初有多少個桃子?
*/ //兩種方法創建
public static void main(String[] args) {
// method1();
System.out.println(peach(5));
}
public static int peach(int count) {
int peach = 1; //最後剩一個桃子
for (int i = 0; i < count; i++) {
peach = peach * 5; //如果最初多四個就可以一直被5整除
}
return peach – 4; //最後把多出的4個減去
}
private static void method1() {
outer: for (int i = 0;; i++) { // 窮舉法www.aiwalls.com
int count = i; // count記住的數是0, 1, 2, 3, 4……
for (int j = 0; j < 5; j++) { // 每個數循環判斷5次
if ((count – 1) % 5 == 0) // 如果這個數能滿足吃掉1個再分成5份
count = (count – 1) / 5 * 4; // 那麼就將桃子吃掉一個分成5份, 留下4份
else
continue outer; // 如果不滿足吃掉1個再分成5份, 那麼直接外層循環進入下一次
}
System.out.println(i); // 循環5次之後, 代表可以被5個猴子來分
return;
}
}
}
摘自 代俊建的專欄