#5345: 請問如何解此題可減少時間(苦惱)


youc (優希)

學校 : 不指定學校
編號 : 11343
來源 : [140.119.164.22]
最後登入時間 :
2011-11-09 18:55:20
d122. Oh! My Zero!! -- liouzhou_101 | From: [140.119.164.22] | 發表日期 : 2011-07-12 23:26

#include<stdio.h>      int main(){    long int a;    long int j;    long int count=0;    long int sum=0;      while(scanf("%ld",&a)==1){       for(j=5;j<=a;j*=5){              count=a/j;              sum+=count;         }                printf("%ld\n",sum);         count=0;sum=0;     }     return 0; } 
-----------------------------------------
此題我只用到了幾次除法 
但還是TLE
請問高手我的方法到底該如何改進呢? 
 
#5346: Re:請問如何解此題可減少時間(苦惱)


youc (優希)

學校 : 不指定學校
編號 : 11343
來源 : [140.119.164.22]
最後登入時間 :
2011-11-09 18:55:20
d122. Oh! My Zero!! -- liouzhou_101 | From: [140.119.164.22] | 發表日期 : 2011-07-12 23:29

重貼我的code沒有分行

--------------------------------------------

#include<stdio.h>
int main(){
long int a;    long int j;    long int count=0;    long int sum=0;
while(scanf("%ld",&a)==1){
     for(j=5;j<=a;j*=5){
           count=a/j; 
           sum+=count;
     }
        printf("%ld\n",sum);
        count=0;sum=0;
     } 
       return 0;
} 

 

 
#5349: Re:請問如何解此題可減少時間(苦惱)


Fermi (Fermi)

學校 : 臺北市立第一女子高級中學
編號 : 10765
來源 : [114.46.97.79]
最後登入時間 :
2014-10-13 12:11:51
d122. Oh! My Zero!! -- liouzhou_101 | From: [125.229.120.124] | 發表日期 : 2011-07-13 11:04

#include      int main(){    long int a;    long int j;    long int count=0;    long int sum=0;      while(scanf("%ld",&a)==1){       for(j=5;j<=a;j*=5){              count=a/j;              sum+=count;         }                printf("%ld\n",sum);         count=0;sum=0;     }     return 0; } 
-----------------------------------------
此題我只用到了幾次除法 
但還是TLE
請問高手我的方法到底該如何改進呢? 

 

 EX: 10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1  =  ( 9 * 8 * 7 * 6 * 4 * 3  * 1)  * 10 * 10

                 ^                          ^               ^

 
#5405: Re:請問如何解此題可減少時間(苦惱)


youc (優希)

學校 : 不指定學校
編號 : 11343
來源 : [140.119.164.22]
最後登入時間 :
2011-11-09 18:55:20
d122. Oh! My Zero!! -- liouzhou_101 | From: [140.119.164.22] | 發表日期 : 2011-07-20 16:04

我的程式碼如下(連結為好讀版):

 http://pastie.org/2241601

我的for loop作法也只是每5的次方做一次除法

想了好幾天還是不知道該怎麼解決TLE

請高手幫忙了!感激不盡!

痛苦太久...

 
#5461: Re:請問如何解此題可減少時間(苦惱)


abcd6891 (曄哥)

學校 : 國立花蓮高級中學
編號 : 3565
來源 : [220.134.146.174]
最後登入時間 :
2023-09-23 20:09:11
d122. Oh! My Zero!! -- liouzhou_101 | From: [114.44.203.161] | 發表日期 : 2011-08-02 03:13

我的程式碼如下(連結為好讀版):

 http://pastie.org/2241601

我的for loop作法也只是每5的次方做一次除法

想了好幾天還是不知道該怎麼解決TLE

請高手幫忙了!感激不盡!

痛苦太久...

j會超過long int的範圍

 要設成long long int 

 
ZeroJudge Forum