package com.java.ly2011.Semptember;
public class BigIntegerProduct {
public static void main(String[] args) {
int[] result = bigNumProduct(new int[]{4,2,9,4,9,6,7,2,9,6}, new int[]{4,2,9,4,9,6,7,2,9,6});//2的32次方 X 2的32次方
for(int i = 0;i<result.length;i++)
System.out.print(result[i]);
System.out.println();
String A = "4294967296";
int[] m = new int[A.length()];
for(int i = 0;i<A.length();i++){
m[i]= A.charAt(i)-'0';
}
int[] result2 = bigNumProduct(m, m);
for(int i = 0;i<result2.length;i++)
System.out.print(result2[i]);
}
public static int[] bigNumProduct(int [] a , int[] b){
int[] c = new int[a.length + b.length];
for(int i =a.length-1; i >= 0; i--)
for(int j = b.length-1; j>=0;j--){
int pos = c.length-1 - (a.length-1-i+b.length-1-j);
c[pos] += a[i]*b[j];
int temp =c[pos]/10;
if(temp!=0){
c[pos-1]+=temp;
c[pos]=c[pos]%10;
}
}
int[] result;
int i=0;
for(;i<c.length;i++){
if(c[i]!=0)
break;
}
if(i==c.length)
result = new int[]{0};
else{
result = new int[c.length-i];
for(int k = 0;k<result.length;k++)
result[k] = c[i+k];
}
return result;
}
}