求源代码

解决方案 »

  1.   

    1)做一个循环,每步乘i就可以做出阶乘来。
    2)把结果转化成字符串。
    3)在字符串里查找0,找到后,把这个以前的从字符串中删除。
    4)继续查找,加上一个变量,找到一个加1。
    5)如果没有了,就ok了,
      

  2.   

    #include<stdio.h> 
          unsigned ling mul(int n); 
          int main() 
         { 
              int m; 
              puts("Calculate n! n=?\n"); 
              scanf("%d", &m);         
              printf("%d!=%ld\n", m, mul(m));
              getch(); 
              retun 0; 
          } 
         unsigned long mul(int n) 
         { 
              unsigned long p; 
              if(n>1) 
                   p=n*mul(n-1);       
              else 
                   p=1L; 
              return(p);               
         } 
      

  3.   

    求n的阶乘转成10进制表示,末尾有多少个0的代码
    http://www.cnblogs.com/panic/archive/2005/02/23/108008.html
      

  4.   

    觉觉ing,我要求的是结果里的所有0,而不是末尾的0,谢谢参与
      

  5.   

    就怕n的数值过大,导致n!超过long型的表示范围。
      

  6.   

    搜索一下 大数阶乘算法直接计算出来再数0的个数吧
    比如:
    http://dev.csdn.net/article/28/28584.shtm
      

  7.   

    int s=1,t=0,f=0;
    int p=0;
    f=fac(10);
    CString buffer;
    sprintf(buffer,"%d",f);
    pDC->TextOut(100,100,buffer);
    for (int n=0;n<=stlen(buffer);n++)
    {
    if (buffer.Mid(i,1)==0)
       {
          p++;
       }
    }
    在调用函数
    int fac(int n)
    {
      for (int i=0;i<n;i++)
     
      {
         s=s*i;
         t=t+s;  
      }
    return t;
    }