我完全迷失了。我想在java中将一个整数表示为幂形式的总和。例如。 17= 2^4+2^0
但我不知道方式,有人可以指导我。
我尝试了以下power(17,2)
,但没有工作
int power(int num, int n)
{
if (n == 0)
return 1;
else if (n%2 == 0)
return power(num, n/2)*power(num, n/2);
else
return num*power(num, n/2)*power(num, n/2);
}
编辑:现在我明白上面的功能不正确,因为我想要一个结果中的指数列表。
答案 0 :(得分:0)
我可能会误解你的问题,但是从方法签名我假设你是在询问如何递归地实现power(num, exponent)
。如果是这种情况,那么执行此操作的方法是递归调用该方法,将数字乘以(n - 1)
幂,直到达到n == 0
,递归结束并返回最终结果。
int power(int num, int n) {
if (n < 0) {
throw new UnsupportedOperationException("Negative powers not supported");
} else if (n == 0) {
return 1;
} else {
return power(num, n - 1) * num;
}
}
用以下方法测试:
System.out.println(power(5, 0));
System.out.println(power(5, 1));
System.out.println(power(5, 2));
System.out.println(power(5, 3));
产地:
1
5
25
125