可以查看这篇中写的:
https://blog.csdn.net/cw_huang/article/details/124487663
#include <stdio.h>
int main() {
int x = 1; // 第 10 天早上剩下 1 个桃子,从此反推出第一天摘的桃子数量
for (int i = 1; i <= 10; i++) {
x = (x + 1) * 2;
}
printf("第一天共摘了 %d 个桃子\n", x);
return 0;
}
供参考:
#include<stdio.h>
int main()
{
int n = 10, mun=1;
for(int i=0;i<n-1;i++)
mun=(mun+1)*2;
printf("%d\n",mun);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:/*
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,
发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子。
令:X10=1,根据题意容易得出
X9=2*(X10+1)
X8=2*(X9+1)
…
Xn=2*(Xn+1+1)
*/
#include<stdio.h>
//返回第n天时的桃子数
int func(int n){
if (n == 10)
return 1;
else
return 2 * (func(n + 1) + 1); //当天的桃子数=下一天的桃子数*2+1
}
int main(){
for (int i = 1; i <= 10; i++) {
printf("第%d天的桃子数:%d\n", i, func(i));
}
return 0;
}