【发布时间】:2014-03-01 08:58:49
【问题描述】:
我的递归方法有问题,它将返回并在 main() 中打印 2 的幂的总和,直到 2 的 X 次幂。X 是命令行参数上的整数。
所以如果我的命令行参数是:“3”
*输出为:15
它应该像 (1 + 2 + 4 + 2^3) 一样工作,如您所见,2 有“3”次幂
所以无论我的数字是多少,都会加上 2 的幂。我设法获得了 2^x 的幂,但我真的很困惑将 2 的幂的总和添加到我的计算中:o
另外,我不会使用 Math.pow(),即使它会更容易 x)
我的密码ATM:
public static void main(String[] commandlineArguments) {
if (commandlineArguments.length == 0) {
System.out.println("Please enter a least one commandline!");
}
else {
Integer number = new Integer(0); // initialize number
try {
number = Integer.parseInt(commandlineArguments[0]);
}
catch (NumberFormatException exception) { // NumberFormatException
System.out.println(exception + " is not a integer!");
System.exit(1); // end program
}
Integer power = power2(number);
System.out.println(power);
}
}
public static Integer power2(Integer number){
if (number == 0) {
return 1;
}
else {
return 2 * power2(number - 1);
}
}
}
【问题讨论】:
-
提示:您正在计算总和,但没有使用单个
+。所以你需要在某处添加一个。
标签: java recursion methods command-line return