s=1!+2!+……+N! 求S 的精确值 (用QBASIC做) 谢谢!11

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:13:08
n<50
n 由键盘输入
pascal 也行
谢谢你们!

采用数组来编写,理论上,只能算到一定位数,比如:3000位.我曾经用Pascal语言作过一次,改成QBASIC一样的.太长了,写不下.

dim sum
dim i
dim nj
sum = 1;
for i = 2 to n
nj = nj * (nj-1)
sum = sum + nj
next
'sum为所求

主要是算法的优化(保存上一个数的结果,i!=(i-1)!*i),这样就很简单了。
int i,s,j,t=0,k=0;
scanf("%d",&s);
for(i=0;i<s;i++)
{
for(j=0;j<i;j++)
{
t=t*j;
}
k=k+t;
}
printf("%d",k);