gpt4 book ai didi

Java - 用传统方式求和大整数

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:09 31 4
gpt4 key购买 nike

我嵌套了 for 循环:

String s1 = "4412";
String s2 = "0123";

int k = 0, l = 0, i3 = 0;

for (int i = s1.length() - 1; i < s1.length(); i--) {

for (int j = s2.length() - 1; j <= i; j--) {

k = Integer.parseInt(Character.toString(s1.charAt(i)));
l = Integer.parseInt(Character.toString(s2.charAt(j)));

i3 = k + l;

System.out.println(i3);

}
}

当我执行这个程序时,我得到 234 作为输出。因为它采用 s1 和 s2 中的最后一个元素值。 S2 继续像这样重复循环:

1
321
2
321
.
.

所以 2+3,2+2,2+1 这样就可以了。但我期待的是4412+123 = 4535

谁能帮帮我。提前致谢

最佳答案

您可以使用 split 与反向字符串并循环抛出数组,如下所示:

String s1 = "4421";
String s2 = "321";
//reverse and split your string
String[] spl1 = new StringBuilder(s1).reverse().toString().split("");//[1,2,4,4]
String[] spl2 = new StringBuilder(s2).reverse().toString().split("");//[1,2,4,4]
String result = "";
int max = spl1.length > spl2.length ? spl1.length : spl2.length;
for (int i = 0; i < max; i++) {
int k = spl1.length <= i ? 0 : Integer.parseInt(spl1[i]);
int l = spl2.length <= i ? 0 : Integer.parseInt(spl2[i]);
result += (k + l) + "";

}
System.out.println(result);//result 2474

想法是:

  1. 反转您的字符串 12345 -> 54321
  2. 拆分字符串 [5,4,3,2,1]
  3. 找到数组之间的最大值
  4. 循环抛出你的数组并进行加法,如果输入不存在则使用 0, spl1.length <= i ? 0 : Integer.parseInt(spl1[i]);
  5. 将添加内容添加到结果中。
<小时/>

编辑

Lets back to school :

Addition

你可以使用它,这个想法很简单:

String s1 = "5768956788678907689076890076544765433564376543564";
String s2 = "657687986578905438732902587349320254893";
String[] spl1 = new StringBuilder(s1).reverse().toString().split("");
String[] spl2 = new StringBuilder(s2).reverse().toString().split("");
String result = "";
int max = spl1.length > spl2.length ? spl1.length : spl2.length;
int rest = 0;
int sum;
for (int i = 0; i < max; i++) {
int k = spl1.length <= i ? 0 : Integer.parseInt(spl1[i]);
int l = spl2.length <= i ? 0 : Integer.parseInt(spl2[i]);

sum = k + l + rest;
if (sum > 9) {
rest = 1;
sum = sum - 10;
} else {
rest = 0;
}
result = (i + 1 == max ? sum + rest * 10 : sum) + result;

}
System.out.println(result);

关于Java - 用传统方式求和大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892818/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com