第九屆藍橋杯省賽JAVA語言 C組題解_解2 猴子數香蕉
阿新 • • 發佈:2018-12-23
JAVA語言 C組題解_2 猴子數香蕉
題目
5只猴子是好朋友,在海邊的椰子樹上睡著了。這期間,有商船把一大堆香蕉忘記在沙灘上離去。
第1只猴子醒來,把香蕉均分成5堆,還剩下1個,就吃掉並把自己的一份藏起來繼續睡覺。
第2只猴子醒來,重新把香蕉均分成5堆,還剩下2個,就吃掉並把自己的一份藏起來繼續睡覺。
第3只猴子醒來,重新把香蕉均分成5堆,還剩下3個,就吃掉並把自己的一份藏起來繼續睡覺。
第4只猴子醒來,重新把香蕉均分成5堆,還剩下4個,就吃掉並把自己的一份藏起來繼續睡覺。
第5只猴子醒來,重新把香蕉均分成5堆,哈哈,正好不剩!
請計算一開始最少有多少個香蕉。
解題思路
暴力破解
特別注意:
需將整數型別轉換為浮點型別計算!!!
結果為:3141
//java程式碼
public static int num() {
for (int i = 1; i < Integer.MAX_VALUE; i++) {
double d = i;//型別轉換。避免整數型別i在計算中將餘數捨去
// d = (d - 1) * 4 / 5;//每次吃掉一份,所以剩下4/5份
// d = (d - 2) * 4 / 5;
// d = (d - 3) * 4 / 5;
// d = (d - 4) * 4 / 5;
for(int j=1;j<= 4;j++){//演算法優化
d=(d-j)*4/5;
}
if (d % 5 == 0&&d!=0) {
return i;
}
}
return 0;
}