美文网首页
两个超长数字字符串相加

两个超长数字字符串相加

作者: 王冥 | 来源:发表于2020-11-25 13:37 被阅读0次

需求两个很长的字符串数字相加,不使用第三方函数,手写算法,目前只写了不带小数点的相加,减法也没实现


public class AddLongStr {

private static String addNumStr(String str1,String str2) {

StringBuilder sumNum = new StringBuilder();

int len = str1.length();

int len1 = str1.length();

int len2 = str2.length();

String gaoW = "";

if (len1 > len2) {

len = str2.length();

gaoW = str1.substring(0, len1 - len);

}else {

len = str1.length();

gaoW = str2.substring(0, len2 - len);

}

System.out.println("len="+len);

int ten = 0;

for (int i = 1; i<=len; i++) {

int sum = Integer.parseInt(String.valueOf(str1.charAt(len1-i))) + Integer.parseInt(String.valueOf(str2.charAt(len2-i))) + ten;

ten = sum/10;

sumNum.insert(0, sum%10);

}

System.out.println("sumNum="+sumNum.toString());

StringBuilder gaoSumString =new StringBuilder();

if (null != gaoW && !gaoW.equals("")) {

System.out.println("gaoW="+gaoW);

int sl = gaoW.length();

int ten2 = 0;

for (int i = sl-1; i >=0; i--) {

int sum = 0;

if (i==sl-1) {

sum = (Integer.parseInt(String.valueOf(gaoW.charAt(i)))) + ten+ ten2;

}else {

sum = (Integer.parseInt(String.valueOf(gaoW.charAt(i)))) + ten2;

}

ten2 = sum/10;

gaoSumString.insert(0, sum%10);

}

if (ten2>0) {

gaoSumString.insert(0, ten2);

}

}

sumNum = gaoSumString.append(sumNum);

return sumNum.toString();

}

public static void main(String[] args) {

System.out.println(addNumStr("777","99933"));

}

}

有兴趣的可以一起检查错误和优化完善

相关文章

  • 两个超长数字字符串相加

    需求两个很长的字符串数字相加,不使用第三方函数,手写算法,目前只写了不带小数点的相加,减法也没实现 public ...

  • 2.3

    js运算符 +:数字相加;字符串相加(拼接) -,*,/(0/0=NaN非数字(是属于数字类型),1/0=infi...

  • 运算符

    算术运算符: 加: 特点: 1、两个数字类型的值相加,所得的还是数字类型; 2、如果是非数字类型(数字+字符串)或...

  • 运算符

    算术运算符: 加: 特点: 1、两个数字类型的值相加,所得的还是数字类型; 2、如果是非数字类型(数字+字符串)或...

  • 2018-7-11

    js运算符 ①加号 数字相加 字符串相加(拼接) ② 减号,乘号,除号(0/0=NaN非数字(是属于数字类型),1...

  • 神奇的Javascript

    在JavaScript中,加法的规则其实很简单,只有两种情况:你只能把数字和数字相加,或者字符串和字符串相加,所有...

  • JS运算符及显示隐式类型转换

    加法规则 布尔值和布尔值相加、数字和布尔值相加。布尔值默认会自动转成数值,然后相加。 两个字符串相加。这时加法运算...

  • 用js转换科学计数法为数字

    前言 今天有个需求,是把两个只包含数字的字符串的数字相加结果以字符串形式导出。原本以为很简单,结果发现数字过大时会...

  • 5-10js

    六种数据类型相加生成的数据类型: 数字 + 对象类型 = 字符串 数字 + 字符串类型 = 字符串类型 数字 + ...

  • 变量等价-解决数字字符串的加法与乘法 2020-08-13

    数字字符串的加法与乘法 1.数字字符串加法 给定两个长度可以上千上万的数字字符串s1, s2,把它们按数值相加,将...

网友评论

      本文标题:两个超长数字字符串相加

      本文链接:https://www.haomeiwen.com/subject/wqcniktx.html