インターネット同棲、自分自身を記述することをお勧めします。
1つの チャー STR [ 1000年]。 2 INT [ 1000年 ]、[B 1000年 ]、C [ 1000年]。 3 4 int型のmain(){ 5 のscanf(" %sの" 、STR)。 6 INT LEN = STRLEN(STR)。 7 のための(int型 I = len- 1 ; I> = 0 [lenの-1] = STR [I] - - I;)' 0 ' 。 8 のscanf(" %sの" 、STR)。 9 INT N =LEN; 10 LEN =のSTRLEN(STR)。 11 のために(int型 I = len- 1 ; I> = 0 ; I - )B [lenの-1] = STR [I] - ' 0 ' 。 12 int型 M = LEN。 13 N = MAX(N、M); 14 15の ために(int型 i = 1 ; iがn = <; iは++)cは[I] = [I] + B [i]は、 16 のために(int型 i = 1 ; iが<= N; iが++)C [I + 1 ] + = C [I] / 10、[I] = C%10 。 17 しばらく(C [N]> 10個の || C [N + 1 ])C [N + 1 ] + = C [N] / 10、C [n]は%= 10、N ++ 。 18 図19は、 のために(int型 I = N; I> 0 ; I - )のputchar(C [i]が+ ' 0 ');のputchar(' の\ n ' ); 20 21 戻り 0 ; 22 }
1つの チャー S [ 1000年]。 2 int型B; 3 INT [ 1000年 ]、C [ 1000年]。 4 int型N、M。 5 6 INT メイン(){ 7 のscanf(" %sの" 、S); 8 INT N = STRLEN(S)。 9 のために(int型 I = N- 1、I> = 0 ; I - )[NI] = sの[I] - ' 0 ' 。 10 のscanf(" %d個"、&B); 11 12 のために(int型 i = 1 ; iが<= N; iが++)C [i]は[I] * = B。 13 のために(int型 i = 1 ; iが<= N; iが++)C [I + 1 ] + = C [I] / 10、[I] = C%10 。 14 一方、(C [N]> 10個の || C [N + 1 ])C [N + 1 ] + = C [N] / 10、C [n]は%= 10、N ++ 。 15 16 のために(int型 ; I> = I = N 1のputchar(C [i]が+ -私は;)' 0 ' )。 17 18 戻り 0 ; 19 }
1 構造体BIGNUM { 2 INT [ 1000年]。 3 int型のlen; 4 5 ボイドのinit(){memsetの(0、はsizeof (A));} 6 7 ボイド のget (){ 8 のinit(); 9 チャー S [ 1000年]。 10 のscanf(" %sの" 、S); 11 LEN =のSTRLEN(S) 12 のためには、(int型 I = len- 1 ; I> = 0; I - )でlen-1] = sの[I] - ' 0 ' 。 13 } 14 15 ボイドプリント(){ 16 のために(int型私は、LEN =; I> 0 ; I - )のputchar([i]が+ ' 0 ' )。 17 } 18 19 空隙initlen(){ 20 のために(LEN = 999 ; LEN> 0 ; len--)場合([LEN])破ります。 21 } 22 23 BIGNUMの演算子 * (BIGNUM x)から{ 24 BIGNUM ANS; 25 ans.init()。 26 のためには、(int型 i = 1 ; iは= LEN <; I ++ ) 27 のための(INT J = 1 ; J <= x.len; J ++ ) 28 ans.a [I + J- 1 ] + = [I] * XA [J]。 29 のために(int型 i = 1 ; iが< 1000 ; I ++)はans.a [I + 1 ] + = ans.a [I] / 10、ans.a [I]%= 10 。 30 ans.initlen()。 31の リターンANS; 32 } 33 } X、Y、Z。 34 35 INT メイン(){ 36 X。取得()、Y。取得(); 37 (X *のY).PRINT(); 38 リターン 0 ; 39 }