编写程序,求1+2!+3!+...+20!的值。(n!=1*2*3*...*n)

如题所述

//用C语言写的
#include <stdio.h>

#define L 20

int main(void)
{
    int i,j,sum=0,product;
    
    //这个for循环用于得到1,2,3,...,20这些数字
    for (i=1; i<=L; i++)
    {
        //这个for循环用于计算上一层for循环的变量i的阶乘
        product = 1;
        for (j=1; j<=i; j++)
            product *= j;
        
        //加上所有数的阶乘的结果
        sum += product;
     }
     
     //打印结果
     printf("1!+2!+3!+...+20!=%d\n", sum);
     
     return 0;
 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-10
您好!需要什么语言的呢。就C语言举例吧。
int fun(int i);

main()
{
int Num = 20;
printf("%d",fun(20));
}
int fun(int n)
{
int tmp = 1,re=0;
for(int i = 0;i<=Num;i++)
{
for (int j =i;j>0;j--)
tmp * =j;
re +=tmp;
}
}
////表示
t =1
r =0
i =1
WHILE i<=20
i=i+1
j= i
DO
t = t*j
j=j-1
LOOP UNTIL j<=0
r=r+t
WEND本回答被提问者采纳
第2个回答  2010-09-10
long long f(){
int s=20;
long long result=0;
while(s>=1)
result=(result+1)*s--;
return result;
}
第3个回答  2017-10-19
1、因为n!=1*2*3*...*n;
2、1+2!+3!+...+20!可以先求每个 n! 的值,再将n!的值相加。
代码如下:
long sum = 0;
int n = 20; //可以任意修改n的值
for (int i = 1; i <= n; i++) {
long m = 1;
//每个 (i!) 的值
for (int j = 1; j <=i; j++) {
m*=j;
}
//每个 (i!) 的值相加
sum+=m;
}
//输出1+2!+3!+...+20!的值

System.out.println("1+2!+3!+...+n!="+sum);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网