如题所述
//用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;
}
#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本回答被提问者采纳
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;
}
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);
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);