猴子吃桃问题
猴子第1天摘了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。用递归法求第1天共摘多少个桃子。 以前回答过这个问题,找帖子花了一点时间#include <stdio.h>
int day_eat(int n);
void main()
{
int n = 10; // 定义变量天数
int sum; // 定义变量桃子总数
sum = day_eat(10);
printf("总桃子数为:%ld 个\n",sum);
printf("\n");
}
int day_eat(int n)
{
int temp; // 定义函数返回值即桃子总数
if(n == 1) // 如果是最后一天时
{
temp = 1; // 桃子在最后一天剩下数
}
else
{
temp = 2 * (day_eat(n - 1) + 1); // 前一天的桃子数目等于后一天数量加1乘2
}
return temp;
}
#endif
#if(1)
#include <stdio.h>
#define count(x) (x*2+2) // 定义前一天的桃子数
int main(void)
{
int x = 1;
int day = 9;
while (day--)
{
x = count(x);
}
printf("%d\n",x);
return 0;
} 风过无痕1989 发表于 2020-12-19 23:52
以前回答过这个问题,找帖子花了一点时间
我说怎么这么快。谢谢了, 乐乐学编程 发表于 2020-12-19 23:55
我说怎么这么快。谢谢了,
不用客气,很喜欢你的问题
页:
[1]