ZCMU-1129が誤ってあなたに恋をした(調合乳の問題)

トピック

1129:第5章:偶然あなたと恋に落ちる

制限時間:5秒メモリ制限:128 MB
送信:661解決済み:176
[送信] [ステータス] [Webボード]
説明

Oの血を持っているほとんどの人は活動家であり、鄭偉はこの特徴を極限まで取り入れています。翌日の授業で、ルアン・ルアンはこれまでにないほど授業で書くのに苦労していることに驚いたので、身を乗り出して「何を書いているの?」と尋ねました。 。知恵の結晶化とともに、ルアン・ルアンはそれを見て、「捕虜の陳小正の詳細な行動計画...」彼女は読み終えた後、言葉を失った。かなり新しい小さな本です。10ページ近くが雄弁に書かれています。小さな印刷物はきちんと書かれています。すべてのリンクと手順はすべて詳細です。重要なポイントと注意事項にも下線が引かれています。

行動戦略1:自習教室で陳暁正と出会う鄭魏は知らないふりをして後ろに座り、数学的な質問をした:520に階乗がいくつあるか知っていますか?しかし、ChenXiaozhengはZhengWeiをまったく無視しました。

この質問に対する答えを知っていますか?誰かがいつかあなたに尋ねに来たら、急いでそれについて考えてください。

入力

1行に1N、0 <= N <10 ^ 7、すぐに答える必要があります!

出力

Nの階乗の桁数を出力します。

サンプル入力

5
6
520

サンプル出力

3
3
1189

考え

一見、この質問は暴力を爆発させなければならないと感じるかもしれません。インターネットでの検索は公式を持っていることがわかります...
ここに画像の説明を挿入

ここに画像の説明を挿入

次に、数式を直接設定します...

int str(int n)
{
    
    
     return floor(log10(sqrt(2*PI*n))+n*log10(n/e))+1;
}

ACコード

#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define pre(i,a,b) for(int i=a;i>=b;--i)
#define m(x) memset(x,0,sizeof x)
const double PI = acos(-1);
const double e = exp(double(1));
const int maxn = 1e6+5;
int str(int n)
{
    
    
    return floor(log10(sqrt(2*PI*n))+n*log10(n/e))+1;
}
int main()
{
    
    
    
    int n;
    while(~scanf("%d",&n))
    {
    
    
        if(n<=3)printf("1\n");
        else
        printf("%d\n",str(n));
    }
    return 0;
}


おすすめ

転載: blog.csdn.net/DAVID3A/article/details/115185233
おすすめ