这道题是求从3-21,差为3的8个数阶乘的和,编写一个求阶乘之和的函数sum(),使用for循环进行阶乘的计算,最终和太大,因此使用科学计数方式表示输出。
程序代码:
#include<stdioh>
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=tj;
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。
n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。
参考代码:
#include "stdioh"
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=si;
printf("%d\n",s);
return 0;
}
/
运行结果:(例如求5的阶乘)
5
120
/
扩展资料:
return用法:
return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:
int sum(int i,int j)
{
return i+j;
printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");
}
main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}
下面是我写的一段代码,希望对你有所帮助,满意求采纳,嘿嘿谢谢#include
<stdioh>
int
main
(void)
{
int
i=0,n,
sum=1,
sum_2=0;
printf("请输入将要求的数字:");
scanf("%d",
&n);
for
(i=1;
i<=n;
i++)
{
sum=i;
sum_2+=sum;
}
printf("%d的阶乘为:%d\n",n,sum);
printf("%d的阶乘的前%d项之和为:%d\n",n,n,sum_2);
return
0;
}var i = 2, n = 10, s = 1, log = '1';
for (; i <= n; i++) {
s = i;
log += ' x ' + i;
}
consolelog(log + ' = ' + s);
1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = 3628800Private Sub Command1_Click()
f = 1
For i = 2 To 10
f = f i
Next i
MsgBox ("10!=" & f)
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)