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

2022-09-18 10:46:52

题目

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

思路

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

源代码

// 计算n的阶乘
intmain(){
	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");return0;}

输出结果(以5!为例)

在这里插入图片描述

注意事项

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

n的阶乘再求和

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

代码附上:

// 求n的阶乘的函数
intfactor(n){
	int result=1;for(int i=1;i<=n;i++){
		result*=1;}return result;}//阶乘求和
intmain(){
	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");return0;}

解析如下:
在这里插入图片描述
循环过程:
在这里插入图片描述

  • 作者:一朵花花
  • 原文链接:https://xhuahua.blog.csdn.net/article/details/115632648
    更新时间:2022-09-18 10:46:52