当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·高分 datagrid 控件问题    »显示摘要«
    摘要: 程序代码: private sub hidecolumns() dim c as column for each c in datagrid1.columns select case c.datafield case "date" c.visible = true c.width = 1000 c.caption = "日期" case &qu......
    摘要: 怎么把她的具体信息提取出来,至少知道是什么歌 ......


这段程序的性能太差

想不出更好的方法,为什么测试的时候总是超时?  
  谁有改进的方法,谢谢!  
   
  #include<stdio.h>  
  int   ct;  
  /*inline   void   fac(int   n){  
  ct=0;  
  if(n<5)return;  
  for(int   i=5,j=5;i<=n;i+=5,j=i)  
   
    while(j%5==0)  
                {j/=5;ct++;   }     */  
                 
  int   main(){  
   
  int   count;  
  scanf("%i",&count);  
  //int*   a=new   int[count];  
   
  for(int   k=0;k<count;k++){  
  ct=0;  
  int   n;  
  scanf("%i",&n);  
  if(n<5)ct=0;  
   
  for(int   i=5,j=5;i<=n;i+=5,j=i)  
   
    while(j%5==0)  
                {j/=5;ct++;   }  
   
   
  printf("%i\n",ct);}  
  printf("\n");  
  return   0;}

NO.1   作者: wingfiring

这个程序的结果是计算<=n的所有数含有的因子5的总数目。  
  在我的机器上跑了没问题。  
  循环是不是可以改成这样:  
  for(int   i=5;i<=n;i+=5)  
  {  
  int   j   =   i;  
  while(j%5==0)  
  {j/=5;ct++;   }  
  }  
 

NO.2   作者: whtwuhaitao

我写得如何:  
    ct   =   0;  
  while   (   n/=5)  
    ct   +=   n;  
  应该没问题吧。

NO.3   作者: Solstice

计算每个数据的阶乘的尾部有多少个0:  
   
  我猜,N!   的末尾的零的个数有:  
   
  N   /   5   +   N   /   25   +   N   /   125   +   N   /   625   +   N   /   3125   +   N   /   5^i   +   ...  
   
  只要取前   log(N)   /   log(5)   项即可  
 

NO.4   作者: Solstice

看看这个对不对:  
   
  int   nzero(int   n)  
  {   //   计算n的阶乘的尾部有多少个0  
          int   z   =   0;  
          for   (int   i   =   5;   i   <=   n;   i   *=   5)  
                  z   +=   n   /   i;  
   
          return   z;  
  }


    摘要: 请问robot如何输入判断条件以自动判断运行结果是否正确? 急,急,急,生手,请多关照!谢谢! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE