
递归(自己的尝试)连乘、
发布日期:2021-05-11 00:44:23
浏览次数:13
分类:精选文章
本文共 1019 字,大约阅读时间需要 3 分钟。
这个问题类似于一个经典的递归问题,目标是编写一个函数来计算从m乘到n的结果,同时使用递归方法来解决问题。在这个问题中,函数需要在每次递归中将当前的乘积累加到总和中。
这个函数的实现思路是这样的:当参数n等于m时,返回当前的总和sum;否则,进行递归调用,将当前的n减1,同时将当前的sum乘以n,将结果作为递归函数的返回值。在这种情况下,我们需要特别注意变量的传递和递归的终止条件。
#includeusing namespace std;long long p(long long n, long long m, long long sum) { if (n == m) { return sum; } else { return p(n - 1, m, sum * n); }}int main() { long long m, n; cin >> n >> m; long long sum = m; cout << "(m-n)!=" << p(n, m, sum); system("pause");}
鸟巢问题:球从高处落下
这个问题类似于经典的鸽巢问题(Absorbing States),但在我们的实现中使用递归方法来计算球到达鸽巢的次数。每次球回弹时,高度会变为原来的二分之一,直到球掉落而不继续回弹。
#includeusing namespace std;double round(int n, double m) { if (n == 0) { return m; } else { return round(n - 1, m / 2); }}int main() { int n; cin >> n; double m; cin >> m; for (int i = 0; i <= n; ++i) { cout << round(n, m); }}
以上代码中的设计思路可以转换到实际应用中,比如计算|x|在多个数的乘积下的情况,或者模拟球的回弹过程。每个递归都会带来一定的效率损失,因此需要谨慎使用递归方法,避免大数情况下的栈溢出。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年05月06日 03时23分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Ehcache Java开源缓存框架
2023-01-24
EhCache 分布式缓存/缓存集群
2023-01-24
EHR:对人力资源信息系统的认识
2023-01-24
EJB学习笔记六(EJB中的拦截器)
2023-01-24
el-form表单重置后输入失效
2023-01-24
el-select下拉框修改背景色
2023-01-24
el-table select事件判断当前项是否勾选
2023-01-24
Elasticsearch & Kibana & Filebeat开启SSL通信
2023-01-24
ElasticSearch - DSL查询文档语法,以及深度分页问题、解决方案
2023-01-24
ElasticSearch - 分布式搜索引擎底层实现——倒排索引
2023-01-24
ElasticSearch - 基于 JavaRestClient 操作索引库和文档
2023-01-24
ElasticSearch - 基础概念,以及和 mysql 的对比
2023-01-24
ElasticSearch - 索引库和文档相关命令操作
2023-01-24
elasticsearch 7.7.0 单节点配置x-pack
2023-01-24