C语言 计算n个数的阶乘的和,其中n小于等于25

用C语言计算表达式1+(12)+(123)+(1234)+……+(123*…n)其中n<=25;

这里涉及到for循环的嵌套;给出两种形式书写(其实思路都一样)
1.其中一个形式(将主函数放到后面,自定义一个fun函数)

#include<stdio.h>
int fun(int n)
{
int a,b;//自定义变量a,b
int i=1,sum=0;//赋初始值
for(a=1;a<=n;a++) 
{i=1;
for(b=1;b<=a;b++)
{
i*=b;
}
sum+=i;

}
return sum;//注意:这里要返回sum值,而不是return 0;
}
main()
{int n;
printf("请输入一个数:\n ");
scanf("%d",&n);
if(n<=25)
printf("%d",fun(n));
}

2.另一种形式

#include<stdio.h>
int main()
{
int a,b,suna=1,sum=0,n;
printf("请输入一个数:\n");
scanf("%d",&n);
for(a=1;a<=n;a++)
{
suna=1;
for(b=1;b<=a;b++)

{
suna*=b;
}
sum+=suna;
}
if(n<=25)
printf("%d",sum);
return 0;
}

至于为什么要设定n的范围要小于等于25,可能是考虑n大于25后的结果会超出范围;
在n=25时:
在这里插入图片描述
如果不限定n的范围:如n=26时
在这里插入图片描述
以上就是C语言对上述表达式的实现。

客官,不管写的咋样,赏个赞再走呗……

猜你喜欢

转载自blog.csdn.net/susugreen_/article/details/106108818