n=2 a^n + b^n = c^n
を除いて、次の式が成立しないという理論があるかどうかを確認するコードを書いた。 プログラムは最後に "Meh、Fermatが正しい"と言ってプログラムの終わりをマークしますが、その後は多くの例外行がスローされます。フェルマーの理論の1つをチェックしようとしているコードが例外を投げている
これはコードです -
public class CheckFermats {
public static void main(String[] args) {
int a=2;
int b=2;
int c=2;
int n=3;
int round = 2;
CheckupA (a,b,c,n,round);
}
public static void CheckupA (int a, int b, int c, int n ,int round){
if (Math.pow(a,n)+Math.pow(b,n)==Math.pow(c, n))
{
System.out.println("HOLYSHIT FERMET WAS WRONG!!");
}
else
{
if (a==9)
{
a=round+1;
CheckupB (a,b,c,n, round);
}
else
{
a++;
CheckupA (a,b,c,n, round);
}
}
}
public static void CheckupB (int a, int b, int c, int n,int round){
if (Math.pow(a,n)+Math.pow(b,n)==Math.pow(c, n))
{
System.out.println("HOLYSHIT FERMET WAS WRONG!!");
}
else
{
if (b==9)
{
b=round+1;
CheckupC (a,b,c,n, round);
}
else
{
b++;
CheckupB (a,b,c,n, round);
}
}
}
public static void CheckupC (int a, int b, int c, int n,int round){
if (Math.pow(a,n)+Math.pow(b,n)==Math.pow(c, n))
{
System.out.println("HOLYSHIT FERMET WAS WRONG!!");
}
else
{
if (c==9)
{
c=round+1;
round++;
CheckIfFinished (n);
checkIfIncreaseN (a,b,c,round, n);
CheckupA (a,b,c,n, round);
}
else
{
c++;
CheckupC (a,b,c,n, round);
}
}
}
public static void checkIfIncreaseN(int a, int b, int c, int round, int n){
if(round==9)
{
round = 2;
a=2;
b=2;
c=2;
n++;
CheckupA (a,b,c,n,round);
}
}
public static void CheckIfFinished (int n){
if (n==9)
{
System.out.println("Meh, Fermet was right");
return;
}
}
}
私に推測させてください: 'StackOverflowError'。 –
複数の質問がある場合は別々に質問してください。また、スタックトレースと、取得している例外に関する詳細情報を追加してください。 – abarisone