我想學習Java;這裏是我正在努力的練習:小編碼挑戰(費馬大定理)
費馬最後定理說沒有整數a,b和c使得a^n + b^n = c^n,除非n = 2.
編寫一個名爲
checkFermat
的方法,它將四個整數作爲參數a,b,c和n,並檢查Fermat定理是否成立。如果n大於2,結果是a^n + b^n = c^n,那麼程序應該打印出「神聖煙霧,Fermat是錯誤的!」否則程序會打印出「不, t工作「。您應該假設有一個名爲
raiseToPow
的方法,它將兩個整數作爲參數,並引發第二個參數的第一個參數。例如:int x = raiseToPow(2, 3);
將值8賦給x,因爲2^3 = 8
我也遇到一些問題,例如我似乎無法使用Math.Pow(a, n)
與int
,只能用double
。如果你有興趣,這裏是我迄今爲止,隨意跳過它,只是在答案中寫你自己的版本的程序。
(請記住,我開始這本書只幾天就回來。)
package fermat.s_last_theorem;
import java.lang.Math;
import java.util.Scanner;
public class FermatS_Last_Theorem {
public static void main(String[] args) {
Scanner s = new Scanner (System.in);
System.out.println("Inster First Number");
double frst = s.nextDouble();
System.out.println("Insert Second Number");
double scnd = s.nextDouble();
System.out.println("Insert Exponent");
double expo = s.nextDouble();
double v = FLaw(frst,scnd,expo);
double k = FLawRes(v, expo);
System.out.println("The answer is " + v);
System.out.println("Your answer rooted by your exponent is " + k);
Law(v, Pow(k, expo));
}
public static double Pow(double a, double b) {
double res = Math.pow (a, b);
return (res);
}
public static double FLaw(double frst, double scnd, double expo) {
double D1 = Pow(frst, expo);
double D2 = Pow(scnd, expo);
return (D1 + D2);
}
public static double FLawRes(double res, double base) {
double D3 = Pow(res, 1/base);
return D3;
}
public static void Law(double v, double k) {
if (v==k) {
System.out.println("Pythagora works.");
} else {
System.out.println("Pythagora doesnt work");
}
}
}
的主要問題是,我不完全知道如何回答練習要求的問題,並計劃上市上面的內容不能正常工作。
你可以使用'(int)Math.Pow(a,n)'將返回值轉換回整數。 (當然,假設您沒有超出整數的有效範圍。) – AJNeufeld
您正在尋找「類型轉換」的概念。 – Victory
您可以閱讀Java原始類型轉換,類型轉換和精度。 –