需要帮助打印两个的幂



>该方法 printPowersOf2 接受一个最大数字作为参数,并将 2 的每个幂从 2^0 打印到该最大数字。

printPowersOf2(3); 输出 1 2 4 8打印幂2(5);产出 1 2 4 8 16 32

我似乎无法找出要打印的正确代码。我必须使用循环和 *= 运算符。不允许上数学课。我也知道它是如此简单

这是我的代码

public class Chap3LabP2 {

  public static void main(String[] args) { 
    printPowersof2(3);
    printPowersof2(5);
    printPowersof2(10);
    printPowersof2(12);

  }
  public static void printPowersof2(int maxNum){
    System.out.print("1" + " ");
    for(int i = 1; i <= maxNum; i++){
      System.out.print(i*2 + " ");
    }
    System.out.println("");
  }

}

在循环集 i = 2 之前。循环体应该是(伪代码):

i *= 2

打印 i

您可以存储当前功率的值,并在周期的每次迭代中将其乘以 2。

int pow = 1;
for(int i = 1; i <= maxNum; i++){
    pow = pow * 2;
    System.out.print(pow + " ");
}
public static void printPowersof2(int maxNum) {
    int power = 0;
    int answer = 1;
    while (true) {
        if (power <= maxNum) {
            System.out.println(answer);
        } else { 
            return;
        }
        answer *= 2;
    }
}

最新更新