package main.algorithm;
//大数相乘
public class Multiplication {
public static String result(String str1,String str2){
// 4 5 6
// 5 6 7
//1:6*7 2:5*7+6*6 3:4*7+5*6 4: 5*6 5: 4*6+5*5 6: 4*5
String str;
char[] c1 = str1.toCharArray();
char[] c2 = str2.toCharArray();
int[] num1 = new int[c1.length];
int[] num2 = new int[c2.length];
int[] result = new int[c1.length+c2.length-1];
for(int i=0;i<c1.length;i++){
num1[i] = c1[i]-'0';
}
for(int i=0;i<c2.length;i++){
num2[i] = c2[i] - '0';
}
for(int i=0;i<num1.length;i++){
for(int j=0;j<num2.length;j++){
result[i+j]+=num1[i]*num2[j];
}
}
int jinwei=0;
StringBuffer strReuslt = new StringBuffer();
for(int i=result.length-1;i>=0;i--){
result[i]+=jinwei;
strReuslt.append(result[i]%10);
jinwei = result[i]/10;
}
if(jinwei!=0){
strReuslt.append(jinwei);
}
return strReuslt.reverse().toString();
}
public static void main(String[] args) {
System.out.println(result("9999999999","999999999999999999999999999999"));
}
}
大数相乘
最新推荐文章于 2024-01-20 09:00:00 发布