当前位置: 首页 > news >正文

递归之吃桃问题

题目如下:

XXX买了一堆桃子不知道个数,第一天吃了一半的桃子,还不过瘾,又多吃了一个。以后他每天吃剩下的桃子的一半还多一个,到 n 天只剩下一个桃子了。XXX想知道一开始买了多少桃子。

首先我们看到题目就应该想边界是什么,通过题目我们可以知道,到第 n 天剩下了一个桃子 那么我们就可以让这个边界为 1 当 n 等于1的时候,也就是第一天就只有一个桃子。
然后我们在想这道题的逻辑
第 n 天的时候剩下了一个桃子,那么第 n-1 天呢,我们先来分析一下:
先设 n-1 天吃了 y 个桃子 我们就可以得出公式:
y/2-1=1 => y/2=(1+1)=>y=(1+1)*2
再次将当天的设置为 n 前一天的设置为 y
这里将 n-1 设为 n , n-2 设为 y
y/2-1=(1+1)*2=>y/2=(4+1)=>y=(4+1)*2
由此推出前一天的桃子数量为当天的(n+1)*2

了解完逻辑,然后完成代码

#include<stdio.h>
int f(int n)
{if (n == 1){return 1;}return (f(n - 1)+1) * 2 ;
}
int main()
{int n;scanf("%d", &n);int sum = f(n);printf("%d", sum);return 0;}
http://www.lryc.cn/news/466127.html

相关文章:

  • CZX前端秘籍2
  • CAD图纸防泄密用什么加密软软件?2024年10款图纸加密软件排行榜
  • WebGL编程指南 - WebGL入门
  • mysql--数据类型
  • 代码随想录第40天|
  • Turn-it:优化线材重构雕塑制造
  • 微深节能 堆取料机动作综合检测系统 格雷母线
  • 【JAVA面试题】什么是Springboot的自动配置以及注意事项
  • 华为鸿蒙开发笔记
  • Go语言Gin框架的常规配置和查询数据返回json示例
  • JavaEE----多线程(二)
  • 【K8S】快速入门Kubernetes
  • 如何在 MySQL 中处理大量的 DELETE 操作??
  • LabVIEW中句柄与引用
  • 【三十四】【QT开发应用】音量图标以及滑动条,没有代码补全的小技巧
  • Android修改第三方应用相机方向
  • Python 读取文件汇总
  • 云原生:一张图了解devops 中CI/CD
  • 无人机之自组网通信技术篇
  • 【WebLogic】Oracle发布2024年第四季度中间件安全公告
  • Java集合(3:Set和Map)
  • 【Golang】Gin框架中如何定义路由
  • CPU内存飙升
  • 【Java】LinkedList实现类的使用
  • 创建人物状态栏
  • django5入门【01】环境配置
  • 1000集《楼兰》系列短剧开机仪式在疆举行,开启全球传播新篇章
  • 【景观生态学实验】实验五 景观生态脆弱性评价
  • ChatGPT 现已登陆 Windows 平台
  • 和鲸社区数据科学实训季,西安交通大学圆满收官,西安,后会有期!