题目链接:http://poj.org/problem?id=2389
题意:给你两个数,让你输出相乘的结果
解析:高进度乘法,c++用数组来模拟,java用BigInteger
#include <string>
#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
const int maxn = 1205;
int a[maxn],b[maxn];
int c[maxn];
int main(void)
{
string t1,t2;
cin>>t1>>t2;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
a[0] = t1.length(),b[0] = t2.length();
for(int i=1;i<=a[0];i++)
a[i] = t1[a[0]-i] - '0';
for(int i=1;i<=b[0];i++)
b[i] = t2[b[0]-i] - '0';
int lenc = 1,x = 0;
for(int i=1;i<=a[0];i++)
{
x = 0;
for(int j=1;j<=b[0];j++)
{
c[i+j-1] = a[i]*b[j]+x+c[i+j-1];
x = c[i+j-1]/10;
c[i+j-1]%=10;
}
c[i+b[0]] = x;
}
lenc = a[0]+b[0];
while(c[lenc]==0 && lenc>1)
lenc--;
for(int i=lenc;i>=1;i--)
printf("%d",c[i]);
puts("");
return 0;
}
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigInteger a = cin.nextBigInteger();
BigInteger b = cin.nextBigInteger();
BigInteger ans = a.multiply(b);
System.out.println(ans);
cin.close();
}
}