發蘋果問題
題目來源:《C/C++程序設計》西安電子科技大學出版社
備註:此題。。。沒有解出來。程序。。一直在執行。。。==!
題目描述
5個小孩,第一個孩子,n個蘋果的一半+1/2個蘋果;第二個,剩下蘋果的1/3+1/3個蘋果,第三個,剩下蘋果的1/4+1/4個蘋果,第四個,剩下蘋果的1/5+1/5個蘋果,第五個剩下的11個蘋果。。。問n多少?
代碼實現
#include<iostream>
using namespace std;
int main()
{
int flag = 1;//試探標誌,1表示未找到n;
int x;
int n = 11;//首先試探最開始的蘋果數爲11;
while (flag)
{
x = n;
flag = 0;
for (int k = 1; k <= 4&&flag==0; k++)
{
if ((n + 1) % (k + 1) == 0)
n = n - (n + 1) /(k + 1);
else
flag = 1;
if (flag == 0 && n != 11)
flag = 1;
n = x + 1;
// cout << n << endl;
}
}
cout << "蘋果總數爲" << x << endl;
system("pause");
return 0;
}
猴子喫桃問題
題目來源:C程序設計(清華出版社,譚浩強著)
問題描述
猴子第一天喫一半+1,第二天剩下的一半+1,第三天剩下的一半+1。。。。第十天想喫時發現只剩下了一個桃子。問桃子原來總數。
代碼實現
#include<iostream>
using namespace std;
/*猴子喫桃問題 :
假設第九天剩餘n個桃子,則n-2/n-1=1;n=4;
假設第八天剩餘n個桃子,則n-2/n-1=4;....
以此類推
*/
int main()
{
int n = 1;
for (int i = 1; i <= 9; i++)
n = (n + 1) * 2;
cout << n << endl;
return 0;
}