アイデア:通常のすべてのは、乗算され、その後、一緒に加えます。
バック追加される計算結果を用いて、文字列クラスのメンバー関数を挿入します。その文字演算と整数演算の違いに注意してください。
1つの#include <iostreamの> 2 使用して 名前空間STDを、 3 INT メイン(){ 4 列、B、C [ 200 ]。 5つの int型 ANS [ 401 ] = { 0 }。 6 INTアップTMP、= 0、K = 0 、MAX_LENGTH。 7 CIN >> A >> B。 8 のための(int型 - I = a.length()1 ; I> = 0 - ; {I) 9個の 、C [K] .insert(C [K] .LENGTH()、kは' 0 '); 10 のために(INT J =てb.length() - 1 ; J> = 0 ; - J){ 11 TMP =([I] - ' 0 ')*(B [J] - ' 0 ')+ アップ; 12 アップ= TMP / 10 。 13 = TMP%のTMP 10 。 14個の C [K] .insert(C [K] .LENGTH()、1、(CHAR)(TMP + ' 0 ' )); 15 } 16 であれば(アップ!= 0){ 17個の C [K] .insert(C [K] .LENGTH()、1、(CHAR)(最大+ ' 0 ' )); 18 、最大= 0 。 19 } 20 MAX_LENGTH =(MAX_LENGTH> C [K] .LENGTH())?(MAX_LENGTH):(C [K] .LENGTH())。 21 K ++ 。 22 } 23 TMP = 0 。 24 、最大= 0 。 25 のために(int型 I = 0 ; iがMAX_LENGTHを<; ++ i)が{ 26 用(int型 J = 0 ; J <K; ++ j)は{ 27 であれば(C [J] .LENGTH()<= I) 28 続けます。 29の ANS [I] + = C [J] [I] - ' 0 ' 。 30 } 31の ANS [I] + = 最大; 32 アップ=のANS [I] / 10 。 33の ANS [I]%= 10 。 34 } 35 であれば(アップ!= 0 ) 36 COUT << アップ。 37 のための(int型I = MAX_LENGTH - 1。I> = 0 ; - I) 38 COUT << ANS [I]。 39 coutの<< てendl; 40 リターン 0 ; 41 }