猴子吃桃 递归 循环 等比数列
do-while
#include<stdio.h>
int main()
{
int n = 1;//第十天只剩下1个桃子,所以初始值为1
int day = 9;//第十天是已知条件,所以循环从第九天开始
do
{
n =(n+1)*2;//每天都是前一天的一半加1,所以这里计算后一天的桃子数
day--;//天数减1
}while(day>=0);//循环到第0天结束
printf("原来有%d个桃子\r\n",n);
return 0;
}
for
#include<stdio.h>
#include<stdlib.h>
int main()
{
int peach = 0;//桃子总数
int rest = 1;//第10天只剩下一个桃子
int day = 0;//
for(day = 9 ;day>0;day--)
{
peach = (rest+1)*2;//每天的桃子总数是后一天剩余桃子加一乘2
rest = peach;
}
printf("猴子第一天一共摘了%d个桃子\r\n",peach);
system("pause");
return 0;
}
等比数列
int fun()
{
int na=10; //已知剩余的天数
double pa=1; //已知的剩余数
int nx=1; //欲求剩余的天数
double px; //欲求的剩余数
if((na-nx)>=0)
{
//函数原型:double ldexp(double num,int exp);
//返回:num*{2的exp次幂}
px=ldexp((1+2),(9))-2;
int i=(int)px;//取整数
printf("第一天共摘了%d只桃子\n",i);
}
return 1;
}
递归
#include <stdio.h>
int eat_peaches(int day, int total_peaches)
{
// 如果是第十天,则返回剩余的桃子数量
if (day == 10)
{
return total_peaches;
}
// 计算第day天剩下的桃子数量
int current_peaches = (total_peaches + 1) / 2;
// 递归调用下一天的吃桃过程
return eat_peaches(day + 1, current_peaches);
}
int main() {
// 第十天只剩下一个桃子
int total_peaches_on_tenth_day = 1;
// 调用递归函数计算第一天开始的剩余桃子数量
int remaining_peaches = eat_peaches(1, total_peaches_on_tenth_day);
printf("The total number of peaches on the first day: %d\n", remaining_peaches);
return 0;
}
本文作者:不会笑的孩子
本文链接:https://www.cnblogs.com/doubleconquer/p/18139204
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~