需要帮助打印两个的权力

时间:2014-02-22 21:08:59

标签: java loops for-loop

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

printPowersOf2(3);输出1 2 4 8 printPowersOf2(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("");
  }


}

3 个答案:

答案 0 :(得分:3)

在循环设置之前i = 2.循环体应该是(伪代码):

i * = 2

打印我

答案 1 :(得分:1)

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

int pow = 1;
for(int i = 1; i <= maxNum; i++){
    pow = pow * 2;
    System.out.print(pow + " ");
}

答案 2 :(得分:1)

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;
    }
}