注册 登录
编程论坛 C语言论坛

C语言——猴子吃桃问题

小白级的小黑 发布于 2022-11-08 08:04, 1081 次点击
程序代码:

/****************************************************
猴子吃桃问题。
猴子第一天摘下若干个桃子,
当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第N天早上想再吃时,见只剩下一个桃子了。
求第一天共摘多少桃子。
***************************************************
*/

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int day, now, before;
    int i;
   
    printf("输入经过的天数:");
    scanf("%d", &day);
    now = 1;
   
    for( i = 1; i < day; i++ )
    {
        before = (now + 1) * 2;
        now = before;
    }
    printf("原来有:%d\n", before);
   
    system("pause");
    return 0;
}


[此贴子已经被作者于2022-11-8 08:05编辑过]

3 回复
#2
吉尼太慢2022-11-08 10:55
好巧,我也不会
#3
小白级的小黑2022-11-10 09:44
回复 楼主 小白级的小黑

[size = 16]
欢迎大家来复制
[/size]
#4
bobodianzi2022-11-12 09:31
用递归会更清楚一点:


#include<stdio.h>
int days;
int func(int n)
{
    if (n >= days)
    {
        return 1;
    }
    else
    {
        return (func(n + 1) + 1) * 2;
    }
}
 
int main()
{
    printf("输入经过的天数:");
    scanf("%d",&days);
    int i;
    for (i = 1; i <= days; i++)
    {
        printf("第 %2d 天桃子数:%d \n", i, func(i));
    }
   
    getchar();
    return 0;
}
1