예 : n1 = 100, n2 = 250, out = 233.주어진 값 범위에서 가장 큰 홀수 피보나치 수 찾기
여기 주어진 세트 범위에서 가장 큰 홀수 피보나치 수를 찾아야합니다. 이상한 피보나치 수가 존재하지 않으면 0을 반환해야합니다. 나는 50 번 0 번과 10 번 233 번 출력을 얻고 있습니다. 실수는 어디에서 발생하며 어떻게 원하는 출력을 얻을 수 있습니까?
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);
}
}
코드를 포맷하십시오! IDE는 모든 것을 들여 쓰고 포맷해야합니다. – bcsb1001
* 나를 편집하십시오 * 죄송합니다. 내 컴퓨터에 * Akshay *가 설치된 편집기가 없으며 Google에서도 찾을 수 없습니다. 의사와상의해야할까요? –
[작은 프로그램을 디버깅하는 방법] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)에서 조언을 따를 경우 문제가 발생합니다. 당신은 정말로 이것을 스스로하는 법을 배워야하고, 지금은 배울 좋은 시간입니다. 오리는 알고 있습니다 ... –