有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一般加5个)。到第n天早上再想吃的时候,就只剩下一个桃子了。
输入:
天数n
输出:
第一天的桃子个数
#include <stdio.h>
int n;
int main()
{
int remain(int x);
scanf("%d",&n);
printf("%d",2*remain (1)+2);
return 0;
}
int remain(int x){
if(x==n) return 1;
else return (remain(x-1)/2-x);
}
用递归
#include <stdio.h>
int n;
int p(int x)
{
if (x==n)
return 1;
return (p(x+1)+x)*2;
}
int main()
{
scanf("%d",&n);
printf("%d",p(1));
return 0;
}
#include <stdio.h>
int n;
int main()
{
int n;
int i;
int mid=0;
int total = 1;
scanf("%d",&n);
for(i=n-1;i>=1;i--){
mid = i+total;
total = mid*2;
}
printf("共摘了%d个桃子\n",total);
return 0;
}
#include <stdio.h>
int n;
int main()
{
scanf("%d",&n);
int x=1;
while (n>1)
{
n--;
x = (x+n)*2;
}
printf("%d",x);
return 0;
}
如果我的回答对你有帮助,可以点击【采纳】按钮,给采纳一下吗,谢谢。
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y