15:階乗と

ポータルます。http://noi.openjudge.cn/ch0106/15/

 

 

高精度Sで計算= 1!2!3!+ ... + N!(N≤50)

前記、例えば:! 5 4 = 5 * 3 * 2 * 1 * "!" 階乗示します。

正の整数Nを入力し、演算結果Sを出力します。

エントリー
正の整数N.
輸出
結果S.
サンプル入力
5
サンプル出力
153



書式#include <iostreamの>
 使用して 名前空間はstdを、
#define N 100000
 INT [N]、N、TOT = 1、レナ= 1 、ANS [N]。
INT メイン()
{ 
    CIN >> N。
    [ 1 ] = 1 ; ANS [ 1 ] = 1 以下のためにint型 I = 2 ; iが<= N; iは++ 
    { 
        ためのint型 J = 1 ; J <=レナ; J ++)[J] * = I。
        以下のためのint型 J = 1 ; J <=レナ; J ++
        { 
            場合([J]> 9 
            { 
                [J + 1 ] + = [J] / 10 
                [J]%= 10 もし(J ==レナ)レナ++ ; 
            } 
        } 
        TOT = MAX(レナ、TOT)。
        INT J = 1 ; J <= TOT; J ++ 
            ANS [J] + = [J]。
        以下のためのint型 J = 1 ; J <= TOT; J ++ の場合(年[J]> 9 
            { 
                年[J + 1 ] ++ ; 
                年[J] - = 10 ;
                もし TOT ++(TOT jは==) 
            } 
    } 
    // COUT << ENDL << TOT。
    以下のためにint型私はTOTを=; I> = 1 ; I - )COUT << 年[I]。
    coutの << てendl; 
}

 

おすすめ

転載: www.cnblogs.com/jzxnl/p/11105558.html