function isPerfectSquare(num) { let n = parseInt(Math.sqrt(num)); return (n * n == num); } // Function to check // if the number is // in Fibonacci or not function checkFib(array, n) { let count = 0; for (let i = 0; i < n; i++) { if (isPerfectSquare(5 * array[i] * array[i] + 4) || isPerfectSquare(5 * array[i] * array[i] - 4)) { console.log(array[i] + " "); count++; } } if (count == 0) console.log("None present + <br>"); } // Driver Code let array = [15, 1, ,3]; let n = array.length; checkFib(array, n);
esa es la función para verificar el fibonaci más cercano cómo obtener la salida
Pregunta: con Array [15, 1, 3] la salida esperada es 2 porque el fibonacci más cercano de 19 es 21 = 2
Gracias por la ayuda. :)
Su código verifica los números de Fibonacci en una matriz y los genera. Para verificar el Fibonacci más cercano, necesita un número, ¿por qué una matriz? ¿Estás sumando números en una matriz? Si es así, entonces:
Primero, agregue array[i] como sum = sum + array[i]
Luego, llame a NearestFibonacci (sum)
donde,
NearestFibonacci (int sum){ if (sum == 0) { cout << 0; return; } int first = 0, mid = 1; int last = first + mid; while (last <= sum) { first = mid; mid=last; last = first + mid; } int ans = min(last - sum, sum - mid); cout << ans; }