對乙個正整數n,求出n!中末尾0的個數。
輸入輸入有若干行。每一行上有乙個整數t,是測試資料組數,接著有t行,每一行包含乙個確定的正整數n(n≤1000000000)。
輸出對輸入行中的每乙個資料n,輸出一行,其內容是n!中末尾0的個數。
輸入樣例 輸出樣例
3
3 0
100 24
1024 253
下邊的**只是解法的核心部分。
#includevoid main()
t=i;
while (t%5==0 && t!=1)
}sum = (two>five?five:two);
printf("
%i64d\n
",sum);
}
//今天看了《程式設計之美》,原來**可以如此簡單。。。還有一種更快的解法、也很巧妙
#include voidmain()
}printf(
"%i64d\n
",five);
}
實現乙個整數N,其階乘N!末尾有多少個0?
給定乙個整數n,那麼n的階乘n!末尾有多少個0呢?例如 n 10,n!3 628 800,n!的末尾有兩個0。也許很多人首先想的就是先求出其階乘,然後通過其階乘判斷末尾有多少個0 我的第乙個想法也是如此 以下是我對於這個思想的 實現 void n of zero int n printf the s...
輸入乙個正整數n,輸出n 的值。
輸入乙個正整數 n nn 輸出 n n n 的值。其中n 1 2 3 nn 1 2 3 cdots n n 1 2 3 n演算法描述 n n n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列 a aa 來表示乙個大整數 a aa a 0 a 0 a 0 表示 a a...
給定乙個整數N,那麼N的階乘N!末尾有多少個0呢?
題目詳情 給定乙個整數n,那麼n的階乘n!末尾有多少個0呢?例如 n 10,n!3 628 800,n!的末尾有兩個0。題目分析 看到題第一想法是將n的階乘求出來然後取計算,但是再一想又會出現資料溢位的問題。所以就想到了另外一種辦法。因為 n!1 2 3 4 5 n 所以我們可以採用分解質因數來解決...