C语言作业题

1、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第1天共有多少桃子?(要求:使用循环计算桃子的个数,要求有函数设计,传入天数,返回桃子的个数)

#include <stdio.h>
​
// 函数声明
int calculatePeaches(int days);
​
// 主函数
int main() {
    int total_peaches;
​
    // 计算第一天开始的总桃子数
    total_peaches = calculatePeaches(10);
​
    // 输出结果
    printf("第一天开始共有 %d 个桃子。\n", total_peaches);
​
    return 0;
}
​
// 计算第一天开始的总桃子数
int calculatePeaches(int days) {
    int peaches = 1; // 第10天早上剩下的1个桃子
​
    // 从第10天向前推算
    for (int i = days - 1; i >= 1; i--) {
        // 每天早上吃掉一半,剩下的桃子数量加1
        peaches = (peaches + 1) * 2;
    }
​
    return peaches;
}
​

2、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第1天共有多少桃子?(要求:使用递归函数计算桃子的个数,要求有函数设计,传入天数,返回桃子的个数)(注意与循环的区别)

#include <stdio.h>
​
// 函数声明
int calculatePeaches(int days);
​
// 主函数
int main() {
    int total_peaches;
​
    // 计算第一天开始的总桃子数
    total_peaches = calculatePeaches(10);
​
    // 输出结果
    printf("第一天开始共有 %d 个桃子。\n", total_peaches);
​
    return 0;
}
​
// 递归函数,计算第一天开始的总桃子数
int calculatePeaches(int days) {
    if (days == 1) {
        return 1; // 第1天剩余的桃子数为1
    } else {
        // 递归调用,计算前一天剩余的桃子数
        int peaches = calculatePeaches(days - 1);
        // 根据前一天剩余的桃子数计算当天开始的总桃子数
        return (peaches + 1) * 2;
    }
}
​
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值