Bsp: n1 = 100, n2 = 250, out = 233.Finden der größten ungeraden Fibonacci-Zahl in den angegebenen Wertebereichen
Hier muss ich die größte ungerade Fibonacci-Zahl in der gegebenen Reihe von Bereichen finden. Wenn eine ungerade Fibonacci-Zahl nicht existiert, sollte sie 0 ergeben. Ich werde als 50 mal 0 und dann als 10 mal 233 ausgegeben. Wo ist mein Fehler und wie bekomme ich die gewünschte Ausgabe?
public class Fibo {
public static void main(String[] args) {
try {
int n1 = 100;
int n2 = 250;
int res = 0;
if (n1 % 2 == 0) {
n1 += 1;
for (int i = n1; i < n2; i += 2) {
if (isPerfectSquare(5 * i * i + 4) || isPerfectSquare(5 * i * i - 4))
res = i;
System.out.println(res);
}
}
} catch(Exception ignored) {
System.out.println("0");
}
}
public static boolean isPerfectSquare(int num) {
double sqrt = Math.sqrt(num);
int x = (int)sqrt;
return Math.pow(sqrt, 2) == Math.pow(x, 2);
}
}
Bitte formatieren Sie den Code! Ihre IDE sollte alles für Sie einrücken und formatieren. – bcsb1001
* Bitte bearbeiten Sie mich * Sorry; Ich habe keinen Editor für * Akshay * auf meinem Computer installiert, und ich kann auch keinen mit Google finden. Vielleicht solltest du mit deinem Arzt sprechen? –
Ihr Problem wird sich ergeben, wenn Sie den Rat hier befolgen: [Wie kleine Programme zu debuggen] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Sie müssen wirklich lernen, dies selbst zu tun, und jetzt ist es eine gute Zeit zu lernen. Die Ente weiß ... –