問題の説明
与えられた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 }