gpt4 book ai didi

Java - 如何将大整数解析为命令行参数?

转载 作者:行者123 更新时间:2023-12-02 05:19:57 25 4
gpt4 key购买 nike

我需要编写一个适用于所有 n 值的简短程序。 n 是命令行参数(args[0])。问题是 Integer.parseInt 不适用于大值,例如 20000000000。我能做些什么来解决这个问题?该程序旨在打印 2 的幂的所有值,直到该值 >= n 并且 n 必须为 argument[0]。

public class PowerOfTwo{
public static void main(String[] args){
int k = 1;
int n = Integer.parseInt(args[0]);
if(n < 0){
System.out.println("");
}else{
for(int i=1; k <= n; i++){
k *= 2;
if(k <= n){
System.out.println(k);
}else{
System.out.println();
}
}
}
}

}

最佳答案

使用java.math.BigInteger或java.math.BigDecimal。这些可以处理任何数量级的数字。

你的循环将如下所示:

public static void main(String[] args) {
final BigInteger TWO = new BigInteger("2");
BigInteger k = BigInteger.ONE;
BigInteger n = new BigInteger(args[0]);
if (n.compareTo(BigInteger.ZERO) < 0) {
System.out.println("< 0");
} else {
while (k.compareTo(n) <= 0) {
k = k.multiply(TWO);
if (k.compareTo(n) <= 0) {
System.out.println(k);
} else {
System.out.println();
}
}
}
}

关于Java - 如何将大整数解析为命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586630/

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