蓝蓝的天 发表于 2008-11-5 16:32

输入n。求1!+2!+……+n!

#include<stdio.h>
void main()
{
   int n,i,j;
   long t=1,sum=0;
   scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
         
   for(j=1;j<=i;j++)
   {t=t*j;}
   sum=sum+t;
    }
printf("%ld\n",sum);   
}
弱弱的问一下这个程序是哪出问题了?

答案错误的。

iptton 发表于 2008-11-5 16:39

试试把i,j,n 换成 long

蓝蓝的天 发表于 2008-11-5 16:41



不行啊

iptton 发表于 2008-11-5 16:44

你少了个 t=1;

iptton 发表于 2008-11-5 16:47


#include<stdio.h>
int main()
{
   long n,i,j;
   long t=1,sum=0;
   scanf("%ld",&n);
   for(i=1;i<=n;i++){
      /*这部分的循环可以优化。
      t=1;
            for(j=1;j<=i;j++){
                t=t*j;
      }
       sum=sum+t;
      */
       t*=i;
       sum+=t;
    }
printf("%ld\n",sum);
return 0;
}

蓝蓝的天 发表于 2008-11-5 16:54


thank you。。

e心男孩 发表于 2008-11-5 18:56

路过看看编程,自己学的已经还给老师了,哎

jinry 发表于 2008-11-6 00:43

不可改变你那坏习惯....

变量一定要初始化...

kobin97 发表于 2008-11-7 21:38

页: [1]
查看完整版本: 输入n。求1!+2!+……+n!