|
【实训目的】递归调用——阶乘
【第 1 步】实训内容介绍
1. 实训内容介绍
2. 求阶乘的函数(循环法)
3. 求阶乘的函数(递归法)
4. 实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】求阶乘的函数(循环法)
1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 cpp5code 中:
#include <iostream.h>
int factorial(int);
void main(void) {
int n;
cout << "输入一个整数: ";
cin >> n ;
cout << "n的阶乘是 {" << factorial(n) << "}\n";
}
// 在这里补写代码
代码见简明教程【例5-9】第 1 步代码,运行结果如下:
输入N: 6
n的附乘是 {720}
Press any key to continue
代码如下:
// 从下一行开始复制。
#include <iostream.h>
int factorial(int);
void main(void) {
int n;
cout << "输入一个整数: ";
cin >> n ;
cout << "n的阶乘是 {" << factorial(n) << "}\n";
}
// 在这里补写代码
int factorial(int n) {
int f = 1;
for(int i = 1; i <= n; i++)
f *= i;
return f;
}
// 一直复制到上一行结束。
【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 3 步】求阶乘的函数(递归法)
代码见简明教程【例5-9】第 2 步代码,运行结果如下:
输入N: 6
n的附乘是 {720}
Press any key to continue
代码如下:
// 从下一行开始复制。
#include <iostream.h>
int factorial(int);
void main(void) {
int n;
cout << "输入一个整数: ";
cin >> n ;
cout << "n的阶乘是 {" << factorial(n) << "}\n";
}
// 在这里补写代码
int factorial(int n) {
if(n == 0) {
return 1;
}else {
return n * factorial(n - 1);
}
}
// 一直复制到上一行结束。
【Jitor 校验第 3 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 4 步】实训总结
本次实训学习了递归调用。递归调用必须注意以下两点:
1. 在每一次调用自身时,必须是(在某种意义上)更接近于解;
2. 必须有一个终止处理或计算的准则。
【Jitor 校验第 4 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |