import javax.swing.text.rtf.RTFEditorKit;
public class LargeNumMult{
public static void main(String[] args) {
String a="424242343242";
String b="65757567001";
String finalResult = "0";
for(int i = b.length()-1,h=0; i >= 0; i--,h++){
int bSingle = Integer.valueOf(b.substring(i, i+1));
StringBuilder result = new StringBuilder();
int remainder = 0;
for(int j = a.length()-1; j >= 0; j--){
int singleNum = Integer.valueOf(a.substring(j, j+1));
int singleResult = bSingle*singleNum+remainder;
result.append(singleResult%10);
if (j==0) {
result.append(singleResult/10);
}
remainder = singleResult/10;
}
StringBuilder singleResult = result.reverse();
for(int k = 0; k < h ; k++){
singleResult.append(0);
}
finalResult = add(singleResult.toString(), finalResult).toString();
}
System.out.println(finalResult.replaceAll("0*", ""));
}
static StringBuilder add(String s1, String s2){
if (s1.length()>s2.length()) {
StringBuilder stringBuilder2 = new StringBuilder(s2).reverse();
for(int i = 0; i<s1.length()-s2.length(); i++){
stringBuilder2.append(0);
}
s2 = stringBuilder2.reverse().toString();
}
StringBuilder addResult = new StringBuilder();
int addHightPosition = 0;
for(int i = s1.length()-1; i >=0; i-- ){
int singleNum1 = Integer.valueOf(s1.substring(i, i+1));
int singleNum2 = Integer.valueOf(s2.substring(i, i+1));
int singleResult = singleNum1+singleNum2+addHightPosition;
addResult.append(singleResult%10);
addHightPosition = singleResult/10;
if (i==0) {
addResult.append(addHightPosition);
}
}
addResult.reverse();
System.out.println("add "+addResult);
return addResult;
}
}
两个大数相乘
最新推荐文章于 2019-04-05 11:26:33 发布