题目描述
求 n ! n! n!,也就是 1 × 2 × 3 ⋯ × n 1\times2\times3\dots\times n 1×2×3⋯×n。
挑战:尝试不使用循环语句(for、while)完成这个任务。
输入格式
第一行输入一个正整数 n n n。
输出格式
输出一个正整数,表示 n ! n! n!。
样例 #1
样例输入 #1
3
样例输出 #1
6
提示
数据保证, 1 ≤ n ≤ 12 1 \leq n\le12 1≤n≤12。
1.题目分析
题目要求的是不使用循环语句,这里我们可以考虑使用递归。
所谓递归就是函数自己不断调用自己,且参数必须递减,有递归的出口,不然就会死循环。
2.题目思路
写一个递归的阶乘函数:首先定义递归的出口,当n为1时,返回1,然后返回n乘以n-1为参数的递归函数。
主函数直接调用输出即可。
3.代码实现
#include <stdio.h>
//阶乘函数
int factorial(int n) {//递归出口if (n == 1) {return 1;}return n * factorial(n - 1);
}int main() {int n;scanf("%d",& n);printf("%d", factorial(n));return 0;
}