编写一个循环,对指数进行求和,如下所示: 2^0 、 2^1 、 2^2 并将它们相加。
这是我的程序:
import java.util.Scanner;
public class Exponents {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println(" Enter expoenent ");
int n = Integer.parseInt(reader.nextLine());
int sum = 0;
int i = 0;
int result = (int)Math.pow(2, sum);
while(i <= n) {
i++;
sum = sum + i;
result += result;
}
System.out.println(result);
}
}
我似乎总是独来独往。它似乎不想添加 2^0 即 1...所以我总是 1。
最佳答案
为什么要在每次迭代中重新评估整个项?
类似于
int term = 1;
int sum = 0;
for (int i = 0; i < n; ++i){
sum += term;
term *= 2;
}
会更有效率。在这里,n
是术语数量:在您的示例中,它是 3。如果您想包含额外术语,请使用 <= n
作为 for
中的停止条件循环。
继续,考虑使用 long
作为 term
的类型和sum
.
关于java - Java 中的指数(足够简单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261982/