A、B、C、D、E5個漁夫夜間合夥捕魚,各自在河邊的樹叢中休息。待日上三竿,漁夫A第一個醒來,他將魚分做5份,把多餘的一條扔回河中,拿本身的一份回家了。漁夫B第二個醒來,也將魚分做5份,扔掉多餘的一條,拿走本身的一份,接着後三個也按一樣的辦法分魚,問5個漁夫至少合夥捕了多少條魚。ios
1 #include<iostream> 2 3 using namespace std; 4 5 6 int isInteger(float i) { //用於判斷是不是整數 7 if (i - (int)i == 0) { 8 return 1; 9 } 10 else { 11 return 0; 12 } 13 } 14 15 //從後面往前面推,初始化count表示E醒來看到的條數,故四次循環以後是A看到的條數, 16 int fish_count() { 17 float count; 18 for (int n = 1; n < 10000; n++) { 19 count = 5 * n + 1; 20 int flag = 1; 21 for (int i = 0; i < 4; i++) { 22 count = count * 5 / 4 + 1.0; 23 if (!isInteger(count)) { 24 flag = 0; 25 break; 26 } 27 } 28 if (flag) { 29 return (int)count; 30 } 31 } 32 return -1; 33 } 34 35 int main(int argc, char *argv[]) { 36 cout << fish_count(); 37 getchar(); 38 return 0; 39 }