调用方法

时间:2016-02-23 10:55:39

标签: java

我是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来工作。

1 个答案:

答案 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.");
    }
}

希望这有帮助!