# 【深基7.例7】计算阶乘
题目描述
求 𝑛!,也就是 1×2×3⋯×𝑛。
挑战:尝试不使用循环语句(for、while)完成这个任务。
输入格式
第一行输入一个正整数 n。
输出格式
输出一个正整数,表示 n!。
样例 #1
样例输入 1
3
样例输出1
6
提示
数据保证,1≤𝑛≤12。
思路分析
-
理解阶乘:首先,理解阶乘的定义,即n!表示1×2×3⋯×n。
-
递归函数:创建一个递归函数
jiecheng
来计算阶乘。递归函数的基本思想是,将一个大问题分解为若干个相同类型的小问题,直到小问题可以直接解决。 -
递归终止条件:在
jiecheng
函数中,当n
等于1时,函数返回1,因为1!等于1。这是递归的终止条件。 -
递归调用:如果
n
不等于1,函数返回n
乘以jiecheng(n-1)
的结果。这样,函数会不断地调用自身,每次都将n
减1,直到n
等于1。 -
主函数:在主函数中,首先读取用户输入的
n
,然后调用jiecheng
函数计算n!
,并将结果存储在变量a
中。最后,输出变量a
的值。
示例代码
#include<bits/stdc++.h>
using namespace std;
// 递归函数,用于计算阶乘
int jiecheng(int n)
{
// 递归终止条件:当n等于1时,返回1
if(n==1)
{
return 1;
}
// 递归调用:返回n乘以n-1的阶乘
return n*jiecheng(n-1);
}
int main()
{
int n;
// 读取用户输入的n
cin>>n;
// 调用jiecheng函数计算n!,并将结果存储在变量a中
long long a=jiecheng(n);
// 输出n!的值
cout<<a<<endl;
return 0;
}