2 回答

TA貢獻1829條經驗 獲得超7個贊
/**
* 設第一個人分魚時總數為a1,每人人分的k1,有:t1 = 5*k1+1.剩下的魚為t2 = t1-k1-1;
* 同理,第二個人魚時有 t2 = 5*k2+1;
* 結合以上,得出k1 = (5*k2+1)/4,同時要滿足k1,k2為整數.
* 假設最后每人平分數為k5=t,遞歸的到k1,就可求出總數
*/
public static void main(String... args) {
int k = 1;
int t = k;
int i = 0;
while (i < 5){
if((t*5+1) % 4 == 0){
t = (t*5+1)/4;
}else {
t = ++k;
i = 0;
}
i++;
}
System.out.println(5*t+1);
}

TA貢獻2016條經驗 獲得超9個贊
你算的等于3906是按照 y=(x-1)/5
這種方式迭代的吧?題目里面是每個人只是拿走了一份,并不是只留了一份。
考慮每個人分完都拿走了一份,剩下4份,公式應該是 y=4(x-1)/5
暴力代碼如下:
function fish() {
for(var j = 0; j < 10000; j++) {
if(canSplit(j)) {
console.log(j);
}
}
}
function canSplit(count) {
for(var i = 0; i < 5;i++) {
if((count - 1) % 5 === 0) {
count = (count - 1) * 4 / 5;
} else {
return false;
}
}
return true;
}
fish();
10000以內的三個結果是:
3121
6246
9371
添加回答
舉報