【实训5-9】递归调用——阶乘
(总分18)


 【实训目的】递归调用——阶乘   

【第 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(陈海云) : 返回首页