这些就是我的问题的约束---我正尝试使用另一种计算方法来解决此问题,但首先尝试在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
,但是我得到32
。 pow(5,4)
应该是625
,但我得到40
。
答案 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;
}