洛谷——P5739 【深基7.例7】计算阶乘

题目描述
求 n!(n≤12),也就是 1×2×3…×n。

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

输入格式

输出格式

输入输出样例
输入 #1
3
输出 #1
6

我的答案:
使用递归函数

#include

int main()
{
	int n;
	scanf("%d",&n);
	long long fun_digui(int n);
	long long sum = fun_digui(n);
	printf("%lld", sum);
	return 0;
}
long long fun_digui(int n)
{
	if (n == 1)
	{
		return 1;
	}
	return	n * fun_digui(n - 1);
}

本没想到用long long 型,用计算器算了一下之后发现值过大,int型范围不够。
最开始的想法是直接用if语句,然后n * (n - 1),如果n == 0 就跳出判断。试了一下发现有三个测试点没有过,一想,我这个想法是while循环的想法,判断没问题但是这么写不行,它没有循环不能继续下去。

你可能感兴趣的:(洛谷)