#2400: 要怎麼更快呢?


tonytonyjan (南洋大兜蟲)

學校 : 國立交通大學
編號 : 5017
來源 : [61.219.118.91]
最後登入時間 :
2018-11-07 14:21:47
d122. Oh! My Zero!! -- liouzhou_101 | From: [140.113.242.246] | 發表日期 : 2009-09-20 15:58

#include<stdio.h>
#include<stdlib.h>

long fun(long n){
     long ans =0;
     long i,j,tmp = 5;
     for(j=0;j<13;j++){
         for(i=tmp;i<=n;i+=tmp) ans++;
         tmp*=5;
     }
     return ans;
}

int main(void){
    long input;
    while(scanf("%ld",&input)!=EOF){
        printf("%ld\n",fun(input));
    }
    return 0;
}
 
#2402: Re:要怎麼更快呢?


morris1028 (碼畜)

學校 : 國立花蓮高級中學
編號 : 3529
來源 : [114.37.59.62]
最後登入時間 :
2021-07-12 19:00:43
d122. Oh! My Zero!! -- liouzhou_101 | From: [118.160.207.181] | 發表日期 : 2009-09-20 18:38

#include
#include

long fun(long n){
     long ans =0;
     long i,j,tmp = 5;
     for(j=0;j<13;j++){
         for(i=tmp;i<=n;i+=tmp) ans++;
         tmp*=5;
     }
     return ans;
}

int main(void){
    long input;
    while(scanf("%ld",&input)!=EOF){
        printf("%ld\n",fun(input));
    }
    return 0;
}


#include<stdio.h>
#include<stdlib.h>


long fun(long n){
     long ans =0;
     long i,j,tmp = 5;
     for(j=0;j<13;j++)
         {
         ans+=n/tmp; 
         tmp*=5;
         }
     return ans;
}


int main(void){
    long input;
    while(scanf("%ld",&input)!=EOF){
        printf("%ld\n",fun(input));
    }
    return 0;
}

紅色的地方可以直接用除的得到個數,不必用FOR跑

 
ZeroJudge Forum