gpt4 book ai didi

java - 数字的字符串表示

转载 作者:行者123 更新时间:2023-12-01 21:53:03 24 4
gpt4 key购买 nike

所以我在最近的一次采访中被问到了这个问题。有两个数字,非常大,因此它们表示为字符串。现在编写一个函数将它们相乘并得出结果字符串。

这就是我设法想出的解决方案,但我认为这是一个不可能的问题。

例如,我使用Integer

public String multiply(String str1, String str2){
int count = 0;
for(int i=0; i < str1.length(); i++){
int num1 = Integer.parseInt(str1.substring(str1.length()-2 -i, str2.length()-1-i));
for(int j=0; j < str2.length(); j++){
int num2 = Integer.parseInt(str2.substring(str2.length()-1 -j, str2.length()-1);
count+= num1*num2;
}
}
return String.valueOf(count);
}

但是我觉得,既然问题的前提是两个字符串的数值不能存储在一个变量中,那么变量count也会溢出。因此我认为我的解决方案是不正确的。有没有办法做到这一点。这些数字超出了 Long 或任何可能的可用数字类型的范围。

最佳答案

通常,您可以使用 BigIntegerBigDecimal 来完成类似的操作...

final String number1 = "12345678902374287346293649376492342...";
final String number2 = "12345678902374287346293649376492342...";
final BigDecimal result = new BigDecimal(number1).multiply(new BigDecimal(number2));
System.out.println("Huge Number: " + result);

关于java - 数字的字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34863973/

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