我是Java的新手,开始阅读Think Java并坚持一些练习。你介意帮帮我吗?非常感谢
费马的最后定理说没有整数a,b和c这样的 该
a^n + b^n = c^n
除了n = 2的情况。编写一个名为
checkFermat(int a, int b, int c, int n)
的方法 取四个整数作为参数-a,b,c和n-并检查以查看 如果费马定理成立。如果n大于2,则结果为 确实a + bn = cn,程序应该打印“圣烟, 费马错了!“否则程序应该打印”不,那 不起作用。“您应该假设有一个名为
raiseToPow(int x, int pow
的方法 两个整数作为参数,并引发第一个参数 第二个的力量。例如:int x = raiseToPow(2, 3);
会将值8赋给x,因为2 ^ 3 = 8。
public class Buzz {}
但我不知道如何将checkFermat中的值交给我必须调用raiseToPow的其他方法以及如何编写方法raiseToPow来工作。
答案 0 :(得分:0)
如果raiseToPow方法假设你不能在Java中使用Math.pow()
方法,那么写一个你自己的方法就是:
public int raiseToPow(int base, int powerTo){
if(power == 0){
return 1;
} else{
int result = x;
for(int i = 1; i <= powerTo; i++) {
result = result * x;
}
return result;
}
}
或者如果您愿意,这里有一个递归方法:
public int raiseToPow(int base, int powerTo){
if(power == 0){
return 1;
}
return base * pow(base, --power);
}
要检查费马定理,您可以使用此作为示例,如果您愿意,可以更改数字的值:
public void checkFermat(int a, int b, int c, int n){
int x = raiseToPow(a, n);
int y = raiseToPow(b, n);
int z = raiseToPow(c, n)
if(x + y == z && n> 2){
System.out.println("Holy smokes, Fermat was wrong!");
} else{
System.out.println("No, that doesn’t work.");
}
}
希望这有帮助!