int i,m,n=1; 
    long sum=0; 
    for(i=1;i <=5;i++) 
    { 
      for(m=1;m <=i;m++) 
      
      { 
      n=n*m; 
      }   sum=sum+n; 
    }
指教大侠 为什么这个程序不是求1!+2!+3+4!+5! 说明原因!!
我是新手,这程序也没错

解决方案 »

  1.   

    因为你的n一直在往上加,而没有从1开始
    比如i=3 的时候
    当i=2这次循环完,n=2了
    再从i=3开始循环n就从2开始乘
    只要每次n都初始化一下就好了
      

  2.   

      int i,m,n=1; 
        long sum=0; 
        for(i=1;i <=5;i++) 
        { 
          n = 1; // 每次循环都要初始化n
          for(m=1;m <=i;m++) 
          
          { 
          n=n*m; 
          }  sum=sum+n; 
        }