题目:大整数乘法。
分析:简单题、模拟。利用数组模拟即可,逆向储存方便计算。
备注:╮(╯▽╰)╭今天rp过低啊,各种水题无限WA。
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
int a[305];
int b[305];
int c[605];
int main()
{
char temp[305];
while ( cin >> temp ) {
int la = strlen( temp );
for ( int i = la-1 ; i >= 0 ; -- i )
a[la-1-i] = temp[i] - '0';
cin >> temp;
int lb = strlen( temp );
for ( int i = lb-1 ; i >= 0 ; -- i )
b[lb-1-i] = temp[i] - '0';
for ( int i = 0 ; i < 600 ; ++ i )
c[i] = 0;
for ( int i = 0 ; i < la ; ++ i ) {
for ( int j = 0 ; j < lb ; ++ j )
c[i+j] += a[i]*b[j];
for ( int j = 0 ; j < 600 ; ++ j )
if ( c[j] > 9 ) {
c[j+1] += c[j]/10;
c[j] %= 10;
}
}
int end = 600;
while ( end >= 1 && !c[end] ) -- end;
while ( end >= 0 ) printf("%d",c[end --]);
printf("\n");
}
return 0;
}