Snow祝你元宵節快樂! Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic PRoblem Description
元宵節到了,Snow 也準備一擲千金買湯圓來慶祝元宵節。Snow 非??犊?,他將分享給你一定數量的湯圓,那么是多少個湯圓呢?答案是 n!(n 的階乘)…… 嘻嘻別傻了,Snow 要分享給你的是 n! 的位數個湯圓,但前提是你得求出 n! 有多少位哦。
Input
輸入數據有多組(數據組數不超過 500),到 EOF 結束。 每組數據輸入 n (1 <= n <= 500)。
Output
對于每組數據,輸出一行,表示 n! 的位數。
Example Input
1
20
Example Output
1
19
學長解析:考慮 log(a*b) = log(a) + log(b),N! 的位數就是 log1 + log2 + log3 + … + logn,將得到的數進一再加一即可。
thought: 明顯是個數學題。。。。。 題目會卡超時。。。遞歸不行,所以應該就是找公式了。。 log10(a*b)=log10(a)+log10(b);
#include <stdio.h>#include <math.h>int main(){ int n; while(~scanf("%d", &n)) { int i; double ans=0; for(i=1; i<=n; i++)ans+=log10((double)i); printf("%d/n", (int)ans+1); }}Download as text新聞熱點
疑難解答