求N!末尾有多少個0
#include <stdio.h>
int main()
{
int i, n;
scanf("%d", &n);
for(i=0; i<n; i++)
{
int temp;
int cnt = 0;
scanf("%d", &temp);
while(temp != 0)
cnt += (temp = temp/5);
printf("%d\n", cnt);
}
}
#程式
//n的階乘末尾有幾個0
#include <iostream>
using namespace std;
int count(unsigned int n)
{
int count = 0;
while(n > 0)
{
n = n/5;
count += n;
}
return count;
}
void main()
{
cout <<count(1024)<<endl;
}
是5的倍數的數有: 1024 / 5 = 204個
是25的倍數的數有:1024 / 25 = 40個
是125的倍數的數有:1024 / 125 = 8個
是625的倍數的數有:1024 / 625 = 1個
是以1024! 中總共有204+40+8+1=253個因子5。即1024!後有253個0