gpt4 book ai didi

java - 我如何添加表示为字符串的非常大的数字,即 50 位数字

转载 作者:行者123 更新时间:2023-12-02 06:13:25 27 4
gpt4 key购买 nike

在这个程序中,我已经使用 BigInterger 创建了一个版本,但我坚持制作这个仅使用字符串的版本。我如何将两个非常大的字符串添加在一起,例如仅使用字符串的 50 位数字。谢谢

public class BigStringNumber {

int []f;
String J;
public BigStringNumber(String H) {
this.J=H;

for(int i=0; i<H.length(); i++){
f=new int[i];
}
// TODO Auto-generated constructor stub
}

public String toString(){

return ""+J;
}

public BigStringNumber add(BigStringNumber d){


return new BigStringNumber();
}

public static void main(String[]args){
BigStringNumber A=new BigStringNumber("46376937677490009712648124896970078050417018260538");
BigStringNumber a=new BigStringNumber("46376937677490009712648124896970078050417018260538");
System.out.print(a.toString());

}

最佳答案

自己编写add方法并不难。
add 的作用与一年级、二年级、三年级学生的作用相同。
实际上,成年人对长数字也是如此。

public class BigStringNumber {

private int[] digit;
// private String str;

public BigStringNumber(String str) {
// this.str = str;
this.digit = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
digit[i] = str.charAt(i) - '0';
}
}

public String toString() {
StringBuilder sb = new StringBuilder();
for (int i=0; i<digit.length; i++){
sb.append((char) ('0' + digit[i]));
}
return sb.toString();
}

public BigStringNumber add(BigStringNumber d) {

StringBuilder sb = new StringBuilder();
int i1 = this.digit.length - 1;
int i2 = d.digit.length - 1;
int dgt = 0;
int carry = 0;
while (i1 >= 0 && i2 >= 0) {
dgt = this.digit[i1] + d.digit[i2] + carry;
carry = dgt / 10;
dgt = dgt % 10;
i1--;
i2--;
sb.append((char) ('0' + dgt));
}
while (i1 >= 0) {
dgt = this.digit[i1] + carry;
carry = dgt / 10;
dgt = dgt % 10;
i1--;
sb.append((char) ('0' + dgt));
}
while (i2 >= 0) {
dgt = d.digit[i2] + carry;
carry = dgt / 10;
dgt = dgt % 10;
i2--;
sb.append((char) ('0' + dgt));
}
sb = sb.reverse();
return new BigStringNumber(sb.toString());
}

public static void main(String[] args) {
BigStringNumber a = new BigStringNumber("2020202029");
BigStringNumber b = new BigStringNumber("4040404046");
System.out.println(a.add(b).toString());
}

}

关于java - 我如何添加表示为字符串的非常大的数字,即 50 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21682549/

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