C语言 求n的阶乘及阶乘和

Posted 一朵花花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 求n的阶乘及阶乘和相关的知识,希望对你有一定的参考价值。

题目

随机输入一个整数n,求出n的阶乘

思路

阶乘,每次乘的数依次递增,直到第n个数,因此我们可以设置一个变量result,用于储存每一次的运算结果。且每次乘的数都依次递增,可以使用for循环语句,所以需引入一个新变量i 来控制for循环。

源代码

// 计算n的阶乘
int main()
	int result=1;
	int n;
	printf("请输入你想计算的阶乘数:");
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		result*=i; //相当于result=result*i
	
	printf("阶乘结果为:%d\\n",result);
	system("pause");
	return 0;

输出结果(以5!为例)

注意事项

用int类型时,n≤12
因为 13!已经62亿+, 会使int溢出!

n的阶乘再求和

思路:
将上述求n的阶乘定义为一个函数,再在主函数中调用求和即可。

代码附上:

// 求n的阶乘的函数
int factor(n)
	int result=1;
	for(int i=1;i<=n;i++)
		result*=1;
	
	return result;

//阶乘求和
int main()
	int sum=0;
	int num=0;
	printf("请输入你想求和的阶乘数:");
	scanf("%d",&num);
	for(int i=1;i<=num;i++)
		sum+=factor(i);
	
	printf("阶乘和为:%d\\n",sum);
	system("pause");
	return 0;


解析如下:

循环过程:

以上是关于C语言 求n的阶乘及阶乘和的主要内容,如果未能解决你的问题,请参考以下文章

(C语言试题练习)用递归方式 求1——n之间的阶乘

(C语言试题练习)用递归方式 求1——n之间的阶乘

C语言求阶乘倒数之和

用C语言求1~20的阶乘之和!

c语言如何求一个数的阶乘

用C语言求5的阶乘,即5*4*3*2*1的值?