シミュレーション階乗の最後にブルーブリッジカップ

問題の説明
  与えられたn個とlen、出力N!レン終了位置。
入力形式
  ラインは、2つの正の整数Nとlen。
出力フォーマット
  答えを表す文字列に並びます。先行ゼロの長さの完了の欠如。
サンプル入力
6 5
サンプル出力
00720
スケールデータと規則
  N <= 30、LEN <= 10。
それとも基盤は長い間、デバッグ、固体ではない、試験サンプルとの良好な考えられていないいくつかの詳細は、ステップバイステップよりよいのために変えました。
問題解決のアイデア:あなたが同様のトピック簡易版をした前に、何をすべきかを忘れて、後で追加。
この質問は、出力のnになることですので!LENビットの後、その後にn個求めて!モジュロ10 ^(2 + LEN)のプロセスの各ステップ。先行ゼロで便利な文字列に変換する。最後に、階乗結果。
1の#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3 typedefの長い 長いLL。
4 LLのF(int型 N){ // 返回10 N的次方
5      LL T = 1 6      INT iは= 1 ; iが<= N; I ++ ){
 7          T * = 10 8      }
 9      戻りT。
10  }
 11  INT メイン(){
 12      INT N、lenの;
13     CIN >> N >> 最大len;
14      LL ANS = 1 15      LL MOD = F(+ lenの2 )。
16      のためにINT iは= 1 ; iが<= N; I ++ ){
 17          ANS =(ANS%MOD * I%MOD)%MOD。
18      }
 19       S = "" ;
20      一方(ANS){
 21          INT T = ANS%10 22          S + = T + ' 0 ' 23の          ANS / = 10 24      }
 25      S = s.substr(0 、LEN)。
26      逆(s.begin()、s.end())。
27      一方(s.length()< LEN){
 28          、S = " 0 " + S。
29      }
 30      COUT << S << ENDL。
31      リターン 0 ;
32 }

 

おすすめ

転載: www.cnblogs.com/fx1998/p/12641295.html