原題鏈接
由於10可以分解為質因數2 * 5,所以可以將原階乘分解求出2和5因子的數量,則末尾0的個數就是2和5中數量較少的那個的數量。
附ac代碼:
#includeint main(){ int t, n; scanf("%d", &t); while(t-- && scanf("%d", &n)){ int a = 0, b = 0; //分別存儲質因子‘2’和、‘5’的數量 int x = n; //副本 while(x) a += (x /= 2); while(n) b += (n /= 5); printf("%d\n", a < b ? a : b); } return 0; }