这段程序的性能太差?

ly00 2003-05-19 12:07:38
想不出更好的方法,为什么测试的时候总是超时?
谁有改进的方法,谢谢!

#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;}
...全文
25 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
whtwuhaitao 2003-05-20
  • 打赏
  • 举报
回复
晕晕
ct = 0;
while ( n/=5)
ct += n
跟我的不就是一个样!
realdreamer 2003-05-20
  • 打赏
  • 举报
回复
靠,这是什么狗屁代码.
imacih 2003-05-20
  • 打赏
  • 举报
回复
同意Solstice(大佛)的观点。
N!没尾有多少个0,主要是把N!分解质因数。分解后,每个2 * 5都可以使末尾有1个0,所以只需计算出2与5的个数,个数最少的就是末尾0的个数。N!中,显示2的个数比5的个数多。故5的个数就是答案。
Solstice(大佛)的程序就是求5的个数。
lw549 2003-05-19
  • 打赏
  • 举报
回复
超时?
不是开玩笑吧。
耙子 2003-05-19
  • 打赏
  • 举报
回复
拜托你描述一下你这代码是干嘛的……
陈硕 2003-05-19
  • 打赏
  • 举报
回复
看看这个对不对:

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

return z;
}
陈硕 2003-05-19
  • 打赏
  • 举报
回复
计算每个数据的阶乘的尾部有多少个0:

我猜,N! 的末尾的零的个数有(每项均取整):

N / 5 + N / 25 + N / 125 + N / 625 + N / 3125 + N / 5^i + ...

只要取前 log(N) / log(5) 项即可
ly00 2003-05-19
  • 打赏
  • 举报
回复
这个程序接受一组数据,计算每个数据的阶乘的尾部有多少个0。
whtwuhaitao 2003-05-19
  • 打赏
  • 举报
回复
我写得如何:
ct = 0;
while ( n/=5)
ct += n;
应该没问题吧。
wingfiring 2003-05-19
  • 打赏
  • 举报
回复
这个程序的结果是计算<=n的所有数含有的因子5的总数目。
在我的机器上跑了没问题。
循环是不是可以改成这样:
for(int i=5;i<=n;i+=5)
{
int j = i;
while(j%5==0)
{j/=5;ct++; }
}
ly00 2003-05-19
  • 打赏
  • 举报
回复
有更好的方法了,:)

for(int k=0;k<count;k++){
ct=0;
int n;
scanf("%i",&n);
if(n<5)ct=0;
for(int i=5;i<=n;i*=5)
ct+=n/i;

printf("%i\n",ct);}
return 0;}
zhaoqsheng 2003-05-19
  • 打赏
  • 举报
回复
ct=0;
inline void fac(int n){

if(n<5)return;
for(int i=5,k=1;i<=n;i*=5,k++)
{
for(j=i;j<i;j+=5)
ct+=k;
}

}
xiaoyunet 2003-05-19
  • 打赏
  • 举报
回复
死循环是没有的,不过不知道你这段程序时干什么用的。
boxban 2003-05-19
  • 打赏
  • 举报
回复
while(j%5==0)
{j/=5;ct++; }

这不是个死循环吗?

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧