MOOC清华《程序设计基础》第5章:求n的阶乘(用递归法做)
来源:互联网 发布:数组怎么用 编辑:程序博客网 时间:2024/05/21 06:45
//使用递归思想,求解正整数的阶乘//本算法的数学模型为 n! = n * (n - 1)!#include <iostream>using namespace std;int fact(int n){if(n == 1) //递归的终止条件 return 1; //直接返回结果 return n * fact(n - 1); // n * (n - 1)!} //自己调用自己:递归 int main(){int n;cin >> n;cout << "fact(" << n << ")=" << fact(n) <<endl;return 0;}
本算法的数学模型为 n! = n * (n - 1)! 。
“有许多实际问题往往不可能或很难找到显而易见的递推关系,这时,递归算法就表现出明显的优越性。”
“递归算法比较符合人的思维方式,逻辑性强,可将问题描述得简单扼要,可读性强,易于理解。”
阅读全文
0 0
- MOOC清华《程序设计基础》第5章:求n的阶乘(用递归法做)
- MOOC清华《程序设计基础》第5章:求n的阶乘(用枚举法做)
- MOOC清华《程序设计基础》第5章:求n的阶乘(用递推法做)
- MOOC清华《程序设计基础》第5章第3题:用递归算法求最大公约数
- MOOC清华《程序设计基础》第6章第1题:n级台阶问题(递归法)
- MOOC清华《程序设计基础》第6章第2题:求f(a,b)问题(递归法)
- MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用枚举法做)
- MOOC清华《程序设计基础》第5章第5题:用递归算法实现数组求和
- MOOC清华《程序设计基础》第5章第4题:用递归算法实现选择排序
- MOOC清华《程序设计基础》第6章第3题:最大乘积问题(递归法)
- MOOC清华《程序设计基础》第3章第5题:求特定数的和
- MOOC清华《程序设计基础》第3章:谁做的好事(顺序枚举)
- MOOC清华《程序设计基础》第3章:谁做的好事(循环枚举)
- MOOC清华《程序设计基础》第5章:N皇后问题(带矩阵输出)
- MOOC清华《程序设计基础》第4章第2题:最高分与最低分(用线性查找法做)
- MOOC清华《程序设计基础》第6章第1题:n级台阶问题(递推法)
- MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to n)
- MOOC清华《程序设计基础》第4章第2题:最高分与最低分(用复合型折半插入排序法做)
- 网页天幕代码!从css、html到js的完美实现(自执行函数加原型的完美应用)!!
- 【Android API】Android跨进程通信AIDL的使用方法
- LeetCode#5* Longest Palindromic Substring
- HDU 1000
- js创建dom与jq创建的dom的性能测试-(记得引入jquery)
- MOOC清华《程序设计基础》第5章:求n的阶乘(用递归法做)
- Python学习笔记(三)——变量类型
- mysqldump 导出导入的一些方法
- EditText文本位置显示
- oracle ADF 12C错误:Calling the constructor for class oracle.jbo.server.SequenceImpl is not permitted
- Ubuntu中添加和删除PPA源
- java8 lamda表达式
- 第七篇:SPDY
- 欧拉函数简单的运用