public class Power {
public static void main(String[] args) {
// TODO Auto-generated method stub
int e;
int result;
for (int i=0; i<10; i++){
result = 1;
e = i;
while(e > 0) {
result *=2;
//这个例子中的e--是什么?如果在i&lt; 10的每次迭代之后e = i,那么我不知道为什么e递减。提前谢谢!
e--;
}
System.out.println("2 to the " +i + " power is " + result);
}
}
}
答案 0 :(得分:3)
谨慎e
是必要的,以避免无限循环。但请继续阅读以了解整个方法如何以此表达式完成:
1 << i;
除非e
递减,否则为while条件
while(e > 0)
如果真的最初将保持为真。
但是,这个等效代码更可取:
for (int e = i; e > 0; e--) {
result *= 2;
}
因为它更清楚发生了什么。
或许不太清楚,但更优雅的是:
result << e;
因为乘以2与左移位1相同。
实际上整个循环可以只用一行代替:
for (int i=0; i<10; i++)
System.out.println("2 to the " +i + " power is " + (1 << i));
无需变量result
或e
。
答案 1 :(得分:2)
e基本上用作计数器,用于完成电源的次数。由于它是一个幂,2必须多次乘以i,因此e充当“计数器”,因此2乘以相应的次数。
每次e--
出现时,2乘以其自身,所以当e等于i且e递减时,2连续乘以自身直到达到指定的数量:i。
答案 2 :(得分:0)
这是我的程序,这是计算指数时可接受的方式。
you can use Math.pow(x, y)..which is x^y..(^ is not xor here)
import acm.program.*;
public class Exponents extends ConsoleProgram {
public void run(){
for (int n = 0; n <= 10; n++) {
println("2 to the power of " + n + " = " + Math.pow(2,n));
}
}
private int raiseIntPower (int n){
int total = 0;
for( int n = 0; n <= 10; n++){
total = Math.pow(2, n);
}
return total;
}
}
答案 3 :(得分:0)
e被递减,因此程序可以继续为整数结果设置新值。它在循环中被用作计数器。