私はJavaを学ぼうとしています。ここで私は苦労しています運動は次のとおりです。コーディングの難しさ(フェルマーの最後の定理)
2^3 = 8のでフェルマーの最終定理は、a、b、cのように何の整数が存在しないことを言っている場合を除く^ N + B^N = C^Nときのn = 2.
checkFermat
という名前のメソッドを作成します。これは4つの整数をパラメータとして取ります.a、b、c、nはFermatの定理が成立するかどうかを確認します。 nが2より大きく、a^n + b^n = c^nであることが真であることが判明した場合、プログラムは「聖なる煙霧、Fermatは間違っています」と表示しなければならない。そうでなければ、プログラムは "No、that doesn '
raiseToPow
という名前のメソッドがあり、2つの整数を引数としてとり、最初の引数を2番目の引数の累乗にすると仮定する必要があります。例えば:私はいくつかの問題が発生した
int x = raiseToPow(2, 3);
は、xに値8を割り当てます、例えば私はAのみで、
int
で
Math.Pow(a, n)
を使用するように見えることはできません
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プリミティブ型変換、型キャスト、 の精度を読むことができます。 –