计算数字的幂和时如何列出指数

时间:2018-05-23 09:37:04

标签: java

我完全迷失了。我想在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);
}

编辑:现在我明白上面的功能不正确,因为我想要一个结果中的指数列表。

1 个答案:

答案 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