这个题有两个解法,一种是从第9天算,设第九天吃的是x个,则x+1为第九天没吃之前的总数,而第十天是1个,有方程(x+1)/2-1=1;得x=3;
再从第九天倒推,可得总数。
int i=0;
int sum=4;
while(i++<9){sum=sum2+2;}即是总数。
另一种是从第一天开始正推,不过这个比较麻烦。
int i=1;
while(i++<500)
{
int sum=i2;
for(int temp=0;temp<10;temp++){
if(sum%2!=0)break;
else sum=sum/2-1;
}
if(sum=1)return i2;
}
private Sub Rorm_Click()
Dim n%,i%
x=1
Print"第七天的桃子数位:1只"
For i=6 To 1 Step-1
x=(x+1)2
Print"第";i;“天的桃子数位:”;x;“只”
Next
End Sub
/猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。/
/第二天又将剩下的桃子吃掉一半,又多吃了一个。/
/以后每天都吃前一天剩下的一半零一个。/
/到第10天在想吃的时候就剩一个桃子了/
/问第一天共摘下来多少个桃子?/
#include <stdioh>
#include <stdlibh>
#include <conioh>
/第n天所剩桃子数/
int getPeachNumber (int n) {
int num; /定义所剩桃子数/
int i=0;
if (n==10)
return 1; /递归结束/
else {
num = getPeachNumber(n+1)2 + 2; /递归/
printf("第%d天:%d个桃子\n", n, num); /第n天剩num个桃子/
}
return num;
}
int main (void) {
int num;
puts ("每天剩余的桃子数:");
num = getPeachNumber (1);
putchar ('\n');
puts ("================================================================");
putchar ('\n');
printf("猴子第一天摘了%d个桃子!\n", num);
putchar ('\n');
getch (); /屏幕暂留/
return 0;
}
运行结果
我做过的练习。
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#include "stdioh"
main()
{
int sum=1,i;
for(i=0;i<=9;i++)
sum=(sum+1)2;
printf("猴子共摘了%d个桃子。\n",sum);
}
以上就是关于C++程序题,编猴子吃桃问题全部的内容,包括:C++程序题,编猴子吃桃问题、vb程序设计题(猴子吃桃,第一天摘了若干个桃子,当即吃了一半多一、C语言猴子吃桃问题递归法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)