注册 登录
编程论坛 新人交流区

求1!+2!+3!+4!+.....+20!

熊猫or彦 发布于 2007-11-09 17:03, 3948 次点击

这个问题怎么做?

56 回复
#2
随风逐流2007-11-09 17:07
不要太简单..........
#3
拉风2007-11-09 17:33
#include<iostream.h>
#define N 20
void main()
{
int i,j=1;
long sum=0,s=1;
for(i=0;i<N;i++)
{ s*=j;j++;
sum+=s;
}
cout<<sum<<endl;
}
#4
星洋2007-11-09 17:46

该怎么做就怎么做咯
#5
影王子2007-11-09 18:14

3楼正解

#6
熊猫or彦2007-11-09 19:09
谢谢咯.
#7
adai062007-11-09 19:34

先单独定义一个求阶乘的函数过程,然后循环调用

#8
adai062007-11-09 19:40

参考代码:

'过程定义
public function fac(n as integer) as integer
if n=1 then
fac=1
else
fac=n*fac(n-1)
end if
end funtion

'调用
for i=1 to 20
sum =sum +fac(i)
next
print sum

#9
逆流的鱼2007-11-09 20:40

习题

#10
jicaifeng2007-11-09 21:08
路过
#11
〃秋风〃2007-11-09 21:32
d
#12
li笨宝宝2007-11-09 21:33
你自己不知道做吗?
用平常的FOR语句也做的出
你自己想想,不懂在问`
#13
桃子高兴2007-11-10 01:32
回复:(熊猫or彦)求1!+2!+3!+4!+.....+20!

#include <stdio.h>
void main()
{
long double jiecheng(int n);
long double i=0,sum=0;
for(i=0;i<20;i++)
{sum=sum+jiecheng(i+1);

}
printf("%f",sum);
}
long double jiecheng(int n)
{
long double c;
if(n==1)
c=1;
else
c=n*jiecheng(n-1);
return(c);
}

我做出的答案是:2561327494111820300.000000 好像答案不对的,你自己检查一下。

#14
dousao2007-11-10 09:14

这类的题目大多是先考虑 每一项的实现方式,比如 1 1*2 1*2*3
t=1;
t=t*i;i++
然后考虑把他们加起来,就和累加一样的
s=0;
s=s+t;
然后综合一下吧,我都是这么做的,一起学习.

#15
veci2007-11-10 09:58
太简单了~~~~~~~~~
#16
晴空2007-11-11 01:31
#include <iostream>
#define MAX 30
int main()
{
int i,k,sum[MAX] ;
double SUM = 0;
for(i = 1;i <= MAX;i++)
{
k = i-1;
sum[k] = 1;
for(int j = i;j > 0;j--)
sum[k] *= j;
}
for(k = 0;k < MAX;k++)
SUM +=sum[k];
std::cout<<SUM<<std::endl;
return 0;
}
#17
晴空2007-11-11 01:33

要掌握算法

#18
florence2007-11-11 11:08
应该自己多看看各种示例
#19
lyixh2007-11-11 11:14
三楼的j是不是多于了哦
#include<iostream>
using namespace std;
#define N 20
void main()
{
int i;
long sum=0,s=1;
for(i=1;i<=N;i++)
{ s*=i;
sum+=s;
}
cout<<sum<<endl;
}
#20
dick_zq0072007-11-11 11:19
20!能输出么?

#21
lilu7272007-11-11 11:20
答案都有了。。混个数。。。
#22
learnerboy2007-11-11 16:53
不要挑战这里人的智商好不好!
#23
天空漆黑2007-11-11 17:06
顶!!
#24
aohing2007-11-11 17:57
main()
{ double i; double sum=1;
for(i=1;i<=20;i++)
{ sum*=i ;
printf("%f!=%f\n",i,sum);
}
}
#25
zaf01062007-11-11 19:31
回复:(jicaifeng)路过
3楼 8楼,都对,我个人认为3楼的更好一点哦.
#26
nhhoo2007-11-11 22:14
太简单了....FOR语句的经典
#27
zhuxy30112007-11-11 22:21
#include<stdio.h>
void main()
{
long f(long m);
long t,n,i;
printf("Please enter the value of n:\n");
scanf("%ld\n",t);
for(t=0,i=1;i<=n;i++)
t=t+f(i);
printf("%ld\n",t);
}
long f(long m)
{
long j,s;
for(s=1,j=1;j<=m;j++)
s=s*j;
retuen(s);
}
结果是268040729

也是初学者,共同进步吧。
#28
鹏宝2007-11-11 22:22
路过..  
#29
bluesea1232007-11-12 09:14

飘过 顶一个

#30
neu_elec2007-11-12 09:58

这还是基本的

#31
光棍2007-11-12 10:10
1+1=2
#32
nianshi2007-11-12 10:18
C语言版本:
#include <stdio.h>
#define N 20
void main()
{
int i,j=1;
long sum=0,s=1;
for(i=1;i<N;i++)
{ s*=1; /* 原理:n!即是(n-1)! * n */
sum+=s;
}
printf("sum=%ld\n",sum);
}
注:20的阶乘有可能已经超出了Long能表示的范围,如果结果不正确,可将sum,s定义为Double的。
#33
josefwei2007-11-12 10:40
学习了,   
#34
tml3272007-11-12 10:46

来学习啦!

#35
li笨宝宝2007-11-12 10:50
回复:(桃子高兴)回复:(熊猫or彦)求1!+2!+3!+4!+...
\
你的稍微做的复杂的点
C语言,要把复杂的做的简单点,容易懂点
#36
zjl1382007-11-12 13:28

我要成为正式会员.

#37
zjl1382007-11-12 13:29
我要成为正式会员.
#38
yjm12392007-11-12 13:37
来学习下!
#39
城镇农民2007-11-12 14:51
呵呵
#40
mizhu2007-11-12 15:21

好,我要像你学习啊,

#41
yxnamespace2007-11-17 10:19
看书就明白了
~
#42
鰗鰈2007-11-17 10:20
=``= 难道真的很简单??
#43
jjxboy2007-11-17 10:20
正解
#44
zhu2882882007-11-17 11:27
   新手不容易啊
#45
zhu2882882007-11-17 11:28
新手不容易啊
#46
zhu2882882007-11-17 11:28
多看书就明白了
#47
zhu2882882007-11-17 11:29
哈哈
#48
zhu2882882007-11-17 11:29

正解
#49
zhu2882882007-11-17 11:29
狂发
#50
zhu2882882007-11-17 11:29
还发
#51
zhu2882882007-11-17 11:30
哈深刻技术看见黄包车棵;寄生虫看见厂
12