C语言求解猴子吃桃问题

这是一道经典的数学问题,可以使用递归或循环两种方法来解决。

递归方法:

假设第10天猴子有x个桃子吃,那么第9天猴子一定有(x + 1) * 2个桃子,以此类推,可以得到第1天猴子要有多少个桃子才能保证最后剩下1个。

代码如下:

c 复制代码
#include <stdio.h>

int eat_peach(int day);

int main() {
    int day = 1;
    int num;
    printf("请输入猴子吃的天数:\n");
    scanf("%d", &day);

    num = eat_peach(day);
    printf("第%d天猴子摘了%d个桃子\n", day, num);
    return 0;
}

int eat_peach(int day) {
    if (day == 10) {
        return 1;
    } else {
        int peach_num = (eat_peach(day+1) + 1) * 2;
        return peach_num;
    }
}

循环方法:

从第10天开始倒推,每天的桃子数就是前一天的桃子数加1后乘以2,最后推到第1天即可。

代码如下:

c 复制代码
#include <stdio.h>

int main() {
    int day = 1;
    int peach_num = 1;

    printf("请输入猴子吃的天数:\n");
    scanf("%d", &day);

    for (int i = 10; i > day; i--) {
        peach_num = (peach_num + 1) * 2;
    }

    printf("第%d天猴子摘了%d个桃子\n", day, peach_num);
    return 0;
}
相关推荐
影寂ldy2 分钟前
C#WinForm 窗体基础(入口、部分类、属性、生命周期事件)
开发语言·c#
2301_781833523 分钟前
Python 正则表达式入门教程
开发语言·python·正则表达式
gihigo19985 分钟前
基于蒙特卡洛的异常值剔除(RANSAC + MC置信区间)—MATLAB实现
开发语言·算法·matlab
Ting.~19 分钟前
在java中接入百度地图
java·开发语言·dubbo
小短腿的代码世界21 分钟前
Qt对象树析构链与智能指针协同:零泄漏内存管理架构
开发语言·qt·架构
zhaqonianzhu28 分钟前
LOL切回桌面问题,采用监控抓出元凶方式
开发语言
Aurorar0rua31 分钟前
CS50 x 2024 Notes Arrays - 04
c语言·开发语言·学习方法
Asize31 分钟前
数组数据结构底层:从灵活到陷阱
前端·javascript·算法
wuminyu1 小时前
Java世界中StringTable源码剖析
java·linux·c语言·jvm·c++
hairenwangmiao1 小时前
B4041 [GESP202409 四级] 区间排序
算法·排序