#include <stdio.h>
typedef unsigned int Uint;
#define N 100
#define DP 1
//RADIX == 10^LOG
#define LOG 1
#define RADIX 10
typedef Uint Liczba[ N+ 1 ] ;
void plus( Liczba a, Liczba b) { // a[]:=a[]+b[]
for ( Uint c= 0 , i= N; i> 0 ; i-- ) {
c += a[ i] + b[ i] ;
a[ i] = c % RADIX;
c /= RADIX; } }
void minus( Liczba a, Liczba b) { // a[]:=a[]-b[]
for ( Uint c= 0 , i= N; i> 0 ; i-- ) {
c += b[ i] ;
if ( a[ i] < c ) {
a[ i] = RADIX + a[ i] - c; c= 1 ; }
else {
a[ i] -= c; c= 0 ; } } }
void razyU( Liczba a, Uint b ) { // a[]:=a[] * b
for ( Uint c= 0 , i= N; i> 0 ; i-- ) {
c += a[ i] * b;
a[ i] = c % RADIX;
c /= RADIX; } }
void pisz( Liczba a ) { Uint i;
for ( i
= 2 ; i
< DP
; i
++ ) printf ( "%0*u" , LOG
, a
[ i
] ) ; for ( ; i
<= N
; i
++ ) printf ( "%0*u" , LOG
, a
[ i
] ) ; }
int main( void ) {
Liczba
a= { 0 , 1 , 0 , 9 , 0 } ,
b= { 0 , 2 , 0 , 5 , 1 } ;
plus
( a
, b
) ; pisz
( a
) ; puts ( "" ) ; razyU( a, 5 ) ; pisz( a) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHVuc2lnbmVkIGludCBVaW50OwojZGVmaW5lIE4gMTAwCiNkZWZpbmUgRFAgMQovL1JBRElYID09IDEwXkxPRwojZGVmaW5lIExPRyAxCiNkZWZpbmUgUkFESVggMTAKdHlwZWRlZiBVaW50IExpY3piYVtOKzFdOwogCnZvaWQgcGx1cyggTGljemJhIGEsIExpY3piYSBiKXsgICAgICAgICAgICAgICAgICAvLyBhW106PWFbXStiW10KCWZvciggVWludCBjPTAsIGk9TjsgaT4wOyBpLS0gKXsKCQljICs9IGFbaV0rYltpXTsKCQlhW2ldID0gYyAlIFJBRElYOwoJCWMgLz0gUkFESVg7fX0KCnZvaWQgbWludXMoIExpY3piYSBhLCBMaWN6YmEgYikgeyAgICAgICAgICAgICAgICAvLyBhW106PWFbXS1iW10KCWZvciggVWludCBjPTAsIGk9TjsgaT4wOyBpLS0gKXsKCQljICs9IGJbaV07CgkJaWYoIGFbaV08YyApewoJCQlhW2ldID0gUkFESVggKyBhW2ldIC0gYzsgYz0xOyB9CgkJZWxzZSB7CgkJCWFbaV0gLT0gYzsgYz0wOyB9fX0KCnZvaWQgcmF6eVUoIExpY3piYSBhLCBVaW50IGIgKSB7ICAgICAgICAgICAgICAgICAvLyBhW106PWFbXSAqIGIKCWZvciggVWludCBjPTAsaT1OOyBpPjA7IGktLSApewoJCWMgKz0gYVtpXSpiOwoJCWFbaV09IGMgJSBSQURJWDsKCQljIC89IFJBRElYOyB9fQoKdm9pZCBwaXN6KCBMaWN6YmEgYSApeyBVaW50IGk7CglwcmludGYoIiUqdS4iLCBMT0csIGFbMV0pOwoJZm9yKCBpPTI7IGk8RFA7IGkrKyApIHByaW50ZigiJTAqdSIsIExPRywgYVtpXSk7CglwdXRjKCIuIik7Cglmb3IoICAgIDsgaTw9TjsgaSsrICkgcHJpbnRmKCIlMCp1IiwgTE9HLCBhW2ldKTsgfQoJCQppbnQgbWFpbih2b2lkKSB7CglMaWN6YmEgCgkJYT17MCwxLDAsOSwwfSwKCQliPXswLDIsMCw1LDF9OwoJcGx1cyhhLCBiKTsgcGlzeihhKTsgcHV0cygiIik7CglyYXp5VShhLCA1KTsgcGlzeihhKTsKCXJldHVybiAwOwp9Cg==