數的長度

數的長度

時間限制:3000 ms  |  內存限制:65535 KB
難度:1
描述

    N!階乘是一個非常大的數,大家都知道計算公式是N!=N*(N-1)······*2*1.現在你的任務是計算出N!的位數有多少(十進制)?

輸入
首行輸入n,表示有多少組測試數據(n<10)
隨後n行每行輸入一組測試數據 N( 0 < N < 1000000 )
輸出
對於每個數N,輸出N!的(十進制)位數。
樣例輸入
3
1
3
32000
樣例輸出
1
1
130271
來源
ACM教程
上傳者

rooot


題解:求一個數n的十進制位數公式 log10(n)+1.。。。。代碼如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        int n;
        scanf("%d",&n);
        double sum=0;
        for(int i=2;i<=n;i++){
            sum+=log10(i);
        }
        long long sum1=(long long)sum+1;//最後記得+1
        printf("%lld\n",sum1);
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章