仅使用增量,减量,循环和= 0来制作pow(x1,x2)函数

时间:2019-03-22 21:01:29

标签: java pow

这些就是我的问题的约束---我正尝试使用另一种计算方法来解决此问题,但首先尝试在Java中解决它。我会读其他语言。

这是我到目前为止所拥有的:

public static int pow(int x1, int x2){
    if(x1 == 0) return 0;
    if(x2 == 0) return 1;
    int exp = x2;
    int y = x1;
    exp--;
    int multi = x1;

    while(exp != 0) {
        int temp = y;
        while(multi !=0) {
            while (temp != 0) {
                y++;
                temp--;
            }
            multi--;
        }
        exp --;
        multi = x1;
        System.out.println();
    }

    return y;
}

pow(4,4)应该是256,但是我得到32pow(5,4)应该是625,但我得到40

1 个答案:

答案 0 :(得分:0)

我试图获得尽可能少更改实现的正确结果(因为这几乎是正确的!)。

基本上,您需要在内部while循环中重用分配给temp的y值。为此,我添加了变量loopTempY。

另一个小的变化是外部循环,您只需要循环到大于1。

public static int pow(int x1, int x2) {
    if (x1 == 0) return 0;
    if (x2 == 0) return 1;
    int exp = x2;
    int y = x1;
    int multi;

    while (exp > 1) {
        multi = x1;
        int temp = y;
        int loopTempY = temp;
        while (multi != 1) {
            while (temp != 0) {
                y++;
                temp--;
            }
            temp = loopTempY;
            multi--;
        }
        exp--;

        System.out.println(y);
    }

    return y;
}