用C语言编写函数求3!6!9!12!15!18!21!

如题所述

这道题是求从3-21,差为3的8个数阶乘的和,编写一个求阶乘之和的函数sum(),使用for循环进行阶乘的计算,最终和太大,因此使用科学计数方式表示输出。

程序代码:

#include<stdio.h>

float sum(int n)

{int i,j;

float t,s=0;

for(i=3;i<=n;i=i+3)

{t=1;

for(j=1;j<=i;j++)

t=t*j;

s=s+t;}

return(s);

}

main()

{printf("this sum=%e\n",sum(21));}

运行结果:

扩展资料:

阶乘的计算方法:

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-23
#include<stdio.h>
int main()
{
int n = 0;//求几的阶乘就是几
double result = 0.0;//存储结果
int i= 0;
printf("请输入要求的数值\n");
scanf("%d",&n);
result = jiecheng(n);
printf("%10.0f\n", result);
}
//阶乘函数----递归
double jiecheng(int n)
{
if (0 == n)
return 1;
else if( 1 == n)
return 1;
else
return n*(jiecheng(n-1)
)
};
第2个回答  2020-03-15
请楼主确认:是要求这个表达式“3!6!9!12!15!18!21!”的值,即3!*6!*9=?,还是表达式内元素分开的值,即求3!,6!,9!分别的值,谢谢
第3个回答  2011-06-23
这个也太简单了吧?
int main()
{
int n = 0;//求几的阶乘就是几
double result = 0.0;//存储结果
int i= 0;
printf("请输入要求的数值\n");
scanf("%d",&n);
result = jiecheng(n);
printf("%10.0f\n", result);
}
//阶乘函数----递归
double jiecheng(int n)
{
if (0 == n)
return 1;
else if( 1 == n)
return 1;
else
return n*(jiecheng(n-1)
)
};本回答被提问者采纳
第4个回答  推荐于2018-03-29
double fact(int n)
{
if( n == 1)
return 1;
else
return n*(fact(n-1));
}
int main()
{
int i;
double result = 0.0;
for(i=3;i<22;i+=3)
{result = fact(n);
printf("%lf\n", result);
return 0;
}本回答被网友采纳
相似回答