c语言猴子吃桃问题

2024年11月15日 12:33
有5个网友回答
网友(1):

一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个,
直到第10天,它发现只有1个桃子了,问它第一天摘了多少个桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子闭核厅数,就先要求出第2天的桃子数,.......因此,有:
a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
现在就知道了算法,我们可以用递归来求解:
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个氏脊了
else a=(a(n-1)+1)*2; //前一轿隐天总比后1天多一半加1
}
-------------------------------------
#include
int qiu(int a,int n);
main(){
int zuih=1,tians=10;//最后一天的个数,天数
long sum;
sum=qiu(1,10);
printf("di yi tian you %ld ge.\n"):
}
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}

网友(2):

递归法
#include
int N; //吃到N天还没吃时衫粗,剩1个,全局变量
int funn(int n)
{
if(n==N)
return 1;
else
return 2*funn(++n)+2;
}
int main()
{
int days,y;
printf("输入多少天含塌兄后剩一个\n");
scanf("%d",&N);
for(days=1;days<=N;days++)
{
y=funn(days);
printf("days%d\t%d\n",days,y);
if(y<0)
{
printf("有误谈袭");
break;
}
}
}
FOR循环

#include
main()
{
int days,n;
for(days=10,n=1;days>0;days--)
{
printf("days%d\t%d个\n",days,n);
n=2*n+2;
}
}

网友(3):

#include
int f(int max){
if (max==1)
{
return 1;
}else return (f(--max)+1)*2;//递归倒推法。。
}
int main(){
int n=0;
n=f(10);
printf("%d\滚悄n",n);
}
最后运扮御行结果为:厅备岩1534

网友(4):

/物册/---------------------------------------------------------------------------

#include

int main(void)
{
int i,s;
for (s=i=1; i <罩则宏盯正= 10; i++) s=(s+1)*2;
printf("%d\n",s);
return 0;
}
//---------------------------------------------------------------------------

网友(5):

从第喊亩十天推算到第掘闭一天就可以了么

#include 判渗裂
void main()
{
int i,sum=1;
for(i=1;i<10;i++)
{
sum=(sum+1)*2;
}
printf("%d\n",sum);
}