2458: 【入门】【P5739】计算阶乘

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:41 解决:27

题目描述

求 lns="http://www.w3.org/1998/Math/MathML">!,也就是 lns="http://www.w3.org/1998/Math/MathML">1×2×3×

挑战:尝试不使用循环语句(for、while)完成这个任务。

输入

第一行输入一个正整数 lns="http://www.w3.org/1998/Math/MathML">

输出

输出一个正整数,表示 lns="http://www.w3.org/1998/Math/MathML">!

样例输入 复制

3

样例输出 复制

6

提示

数据保证,lns="http://www.w3.org/1998/Math/MathML">112

使用循环:

#include<iostream>
using namespace std;
int main(){
    int n,ans=1;
    cin>>n;
    for(int i=1;i<=n;i++)
        ans*=i;
    cout<<ans<<endl;
    return 0;
}

使用递归:

#include <iostream>
using namespace std;
int f(int x) {
    if (x == 1) return 1; //如果x为1,则返回1!=1
    return x * f(x - 1);
    //否则递归调用函数计算(x-1)!,并且将其乘上x返回,从而得到x!的结果
}
int main() {
    int n; cin >> n;
    cout << f(n) << endl; return 0;
}