我刚刚开始学习Java,由于某种原因,我的程序在编译时不返回任何内容。

目标:
编写一个名为printPowersOf2的方法,该方法接受一个最大数字作为参数,并打印从20(1)到最大功率(含)的每个2的幂。例如,考虑以下调用:

printPowersOf2(3);
printPowersOf2(10);


这些调用应产生以下输出:

1 2 4 8
1 2 4 8 16 32 64 128 256 512 1024

Problem can also be found from here

my code:

public class Test{
   public static void main(String[] Args){
      printPowersOf2(3);
      printPowersOf2(10);
    }
    public static int printPowersOf2(int num){
      double b = Math.pow(2,num);
      int a = (int)b;
      return a;
    }
}

最佳答案

它确实会返回值,但这不是您想要的。您想打印它!您应该使用以下命令循环打印值:

System.out.printf("%d ", a);


代替return a;完整功能:

public static void printPowersOf2(int num) {
    for (int i = 0; i < num; i++) {
        System.out.print("%d ", Math.pow(2, i));
    }
    System.out.println(); // for the line break
}


不需要double,因为这些数字是完美的平方。

10-08 17:20