学生党,一道非常简单的c语言问题,感谢各位大佬

有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第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