我刚刚开始学习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
,因为这些数字是完美的平方。