51nod 1003 階乘後面0的數量

2021-08-04 19:53:42 字數 1207 閱讀 4160

思路:看有多少個零,其實就是看階乘中所有相乘的數中含有因子2和5的個數,而2的個數遠遠多於5的個數,所以記錄所有數中含有因數5的個數。

這是自己寫的矬**,875ms,差點超時。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define cle(a) memset(a,0,sizeof(a))

#define inf(a) memset(a,ox3f,sizeof(a))

#define ll long long

#define rep(i,a,n) for(int i=a;i<=n;i++)

using

namespace

std;

const

int inf = ( 2e9 ) + 2;

const

int maxn = 1e9+10;

int main()

}printf("%d\n",ans);

}

還有一種很好的寫法:n/5 為為含有乙個5的個數,n/25為含有2個5的個數。。依此類推

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define cle(a) memset(a,0,sizeof(a))

#define inf(a) memset(a,ox3f,sizeof(a))

#define ll long long

#define rep(i,a,n) for(int i=a;i<=n;i++)

using

namespace

std;

const

int inf = ( 2e9 ) + 2;

const

int maxn = 1e9+10;

int main()

printf("%d\n",ans);

}

51 nod 1003 階乘後面0的數量

1003 階乘後面0的數量 基準時間限制 1 秒 空間限制 65536 kb 分值 5n的階乘後面有多少個0?6的階乘 1 2 3 4 5 6 720,720後面有1個0。input 乙個數n 1 n 10 9 output 輸出0的數量input 示例 5output 示例 1程式設計之美有講 乙...

51nod 1003 階乘後面0的數量

1003 階乘後面0的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏 關注 n的階乘後面有多少個0?6的階乘 1 2 3 4 5 6 720,720後面有1個0。input 乙個數n 1 n 10 9 output 輸出0的數量 input示例 5 ou...

51Nod 1003 階乘後面0的數量

我們知道,10 2 5。每乙個 2 與乙個 5 相乘,結果就增加乙個零。所以求 n 後面的連續零的個數,其實就是求其中相乘的數含因子對 2 與 5 的個數。又因為從1到某個數,所含 2 的個數比 5 多,所以問題就可以進一步簡化到求含有因子5的個數。偽 o nlogn 超時 int n,ans 0 ...