【发布时间】:2020-02-27 23:36:30
【问题描述】:
对于我的家庭作业,我需要编写代码来计算 2 次幂 n (2^n) 虽然我设法使它适用于从 0 到 30 的 n,但对于 31,我得到 -2147483648 对于任何大于 31 (33,35,40..) 的 n,我只得到 0.. 我该如何处理? 我需要使用简单的命令,我不能使用数学 pow
公共类Task3a {
public static void main(String[] args) {
//---------------write your code BELOW this line only!--------------
Scanner myScanner = new Scanner (System.in);
int n = myScanner.nextInt();
int expo = n ;
int base = 2;
if (n==0){
System.out.println("1");
}
if (n==1){
System.out.println(base);
}
else{
while(expo>1){
base = base * 2 ;
expo = expo - 1;
}
System.out.println(base);
}
//---------------write your code ABOVE this line only!--------------
}
}
如我所说,以 2^35 为例,我得到 0
【问题讨论】:
-
如果你想处理大数,你正在跨越 Java 中的 int 范围,使用 BigInteger 代替