아이디어 : 일반마다 곱한 후 합산.
다시 추가 계산 결과를 이용하여 스트링 클래스의 멤버 함수를 삽입한다. 해당 문자 연산과 정수 연산 차이가 있습니다.
1 #INCLUDE <iostream> 2 사용 스페이스 성병; 3 INT 의 main () { 4 캐릭터 A, B, C [ 200 ]; 5 INT의 ANS [ 401 ] = { 0 }; 6 INT 최대 TMP = 0 , K = 0 , MAX_LENGTH; 7 CIN 사항 >> >> B; 8 대 ( int로 - I = a.length () 1 , 난> = 0 -; {I) (9 개) , (k)를 (C) [K]를 취소하려면 (c [K] .length () ' 0 '); 10 대 ( INT J = b.length를 () - 1 ; J> = 0 - J) { 11 TMP = (a [I] - ' 0 ' ) * (B [J] - ' 0 ' ) + 최대 ; (12) 최대 = TMP / 10 ; 13 TMP를 TMP의 % = 10 ; 14 개 (C) [K]를 취소하려면 (c [K] .length (), 1 ( 문자 ) (TMP + ' 0 ' )); 15 } 16 의 경우 (업! = 0) { 17 개 (C) [K]를 취소하려면 (c [K] .length (), 1 ( 문자 ) (최대 + ' 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 = 1을 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 대 ( INTMAX_LENGTH I = - 1 ; I> = 0 ; - I) 38 COUT << ANS [I]; 39 COUT << ENDL; 40 반환 0 ; 41 }