Nos dan una variable n, necesitamos encontrar si el número de Fibonacci será múltiplo de 10 o no.
Ejemplos:
Input : 15 Output : Yes Input : 17 Output : No
Un método simple es encontrar el n-ésimo número de Fibonacci y verificar si es divisible por 10 o no.
C++
// A simple C++ program to check if // n-th Fibonacci number is multiple // of 10. #include<bits/stdc++.h> int fibonacci(int n) { int a = 0, b = 1, c; if (n <= 1) return n; for (int i = 2; i<= n; i++) { c = a + b; a = b; b = c; } return c; } // Returns true if n-th Fibonacci number // is multiple of 10. bool isMultipleOf10(int n) { int f = fibonacci(30); return (f % 10 == 0); } // Driver code int main() { int n = 30; if (isMultipleOf10(n)) printf("Yes\n"); else printf("No\n"); }
Java
// A simple Java program to check if // n-th Fibonacci number is multiple // of 10. class Fibonacci { static int fibonacci(int n) { int a = 0; int b=1; int c=0; if (n <= 1) return n; for (int i = 2; i<= n; i++) { c = a + b; a = b; b = c; } return c; } // Returns true if n-th Fibonacci number // is multiple of 10. static boolean isMultipleOf10(int n) { int f = fibonacci(30); return (f % 10 == 0); } // main function public static void main (String[] args) { int n = 30; if (isMultipleOf10(n)) System.out.println("Yes"); else System.out.println("No"); } }
Python 3
# A simple Python 3 program to check if # n-th Fibonacci number is multiple # of 10. def fibonacci(n): a = 0 b = 1 if (n <= 1): return n for i in range(2, n + 1): c = a + b a = b b = c return c # Returns true if n-th Fibonacci # number is multiple of 10. def isMultipleOf10(n): f = fibonacci(30) return (f % 10 == 0) # Driver code if __name__ =="__main__": n = 30 if (isMultipleOf10(n)): print("Yes") else: print("No") # This code is contributed by ita_c
C#
// A simple C# program to check if // n-th Fibonacci number is multiple // of 10. using System; class GFG { static int fibonacci(int n) { int a = 0; int b = 1; int c = 0; if (n <= 1) return n; for (int i = 2; i<= n; i++) { c = a + b; a = b; b = c; } return c; } // Returns true if n-th Fibonacci // number is multiple of 10. static bool isMultipleOf10(int n) { int f = fibonacci(30); return (f % 10 == 0); } // main function public static void Main () { int n = 30; if (isMultipleOf10(n)) Console.Write("Yes"); else Console.Write("No"); } } // This code contribute by parshar.
PHP
<?php // A simple PHP program to // check if n-th Fibonacci // number is multiple of 10. function fibonacci($n) { $a = 0; $b = 1; $c; if ($n <= 1) return $n; for ($i = 2; $i<= $n; $i++) { $c = $a + $b; $a = $b; $b = $c; } return $c; } // Returns true if n-th Fibonacci // number is multiple of 10. function isMultipleOf10($n) { $f = fibonacci(30); return ($f % 10 == 0); } // Driver code $n = 30; if (isMultipleOf10($n)) echo "Yes\n"; else echo "No\n"; // This code is contributed by ajit. ?>
Javascript
<script> // A simple Javascript program to // check if n-th Fibonacci // number is multiple of 10. function fibonacci(n) { let a = 0; let b = 1; let c; if (n <= 1) return n; for (let i = 2; i<= n; i++) { c = a + b; a = b; b = c; } return c; } // Returns true if n-th Fibonacci // number is multiple of 10. function isMultipleOf10(n) { let f = fibonacci(30); return (f % 10 == 0); } // Driver code let n = 30; if (isMultipleOf10(n)) document.write("Yes<br>"); else document.write("No\n"); // This code is contributed by _saurabh_jaiswal. </script>
Producción:
Yes
Método eficiente:
la solución anterior puede no funcionar si n es muy grande, entonces no es posible encontrar el número de Fibonacci. Además, podemos verificar sin encontrar el número de Fibonacci mirando el patrón. ¡Veamos cómo!
Si el número es divisible por 10, entonces debe ser divisible por 5 y 2 ambos.
Múltiplos de 2 en series de Fibonacci:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 ….
Los números que se muestran en negrita son divisibles por 2. Tras una observación cuidadosa, encontramos que cada tercer número es divisible por 2.
Múltiplos de 5 en la serie de Fibonacci:
0 1 1 2 35 8 13 21 34 55 89 144 233 377 610 987 1597 2584 ……
Los números que se muestran en negrita son divisibles por 5. En una observación cuidadosa, encontramos que cada quinto número es divisible por 5.
Ahora MCM de 3 y 5 es 15. Entonces, cada 15-ésimo número de Fibonacci será divisible por 10. Entonces, no necesitamos encontrar el número de Fibonacci, solo tenemos que verificar si n es divisible por 15 o no. A continuación se muestra la implementación.
C++
// A simple C++ program to check if // n-th Fibonacci number is multiple // of 10. #include<bits/stdc++.h> // Returns true if n-th Fibonacci number // is multiple of 10. bool isMultipleOf10(int n) { return (n % 15 == 0); } int main() { int n = 30; if (isMultipleOf10(n)) printf("Yes\n"); else printf("No\n"); return 0; }
Java
// A simple Java program to check if // n-th Fibonacci number is multiple // of 10. class Fibonacci { // Returns true if n-th Fibonacci number // is multiple of 10. static boolean isMultipleOf10(int n) { if(n%15 == 0) return true; return false; } // main function public static void main (String[] args) { int n = 30; if (isMultipleOf10(n)) System.out.println("Yes"); else System.out.println("No"); } }
Python3
# A simple Python 3 program to check if # n-th Fibonacci number is multiple # of 10. # Returns true if n-th Fibonacci number # is multiple of 10. def isMultipleOf10(n): return (n % 15 == 0) # Driver Code n = 30 if (isMultipleOf10(n)): print("Yes"); else: print("No"); # This code is contributed # by Akanksha Rai
C#
// A simple C# program to check if // n-th Fibonacci number is multiple // of 10. using System; class GFG { // Returns true if n-th Fibonacci number // is multiple of 10. static bool isMultipleOf10(int n) { if(n % 15 == 0) return true; return false; } // main function public static void Main () { int n = 30; if (isMultipleOf10(n)) Console.Write("Yes"); else Console.Write("No"); } } // This code is contributed by nitin mittal.
PHP
<?php // A simple PHP program to // check if n-th Fibonacci // number is multiple of 10. // Returns true if n-th // Fibonacci number is // multiple of 10. function isMultipleOf10($n) { return ($n % 15 == 0); } // Driver Code $n = 30; if (isMultipleOf10($n)) echo "Yes\n"; else echo "No\n"; // This code is contributed // by akt_mit ?>
Javascript
// A simple Javascript program to // check if n-th Fibonacci // number is multiple of 10. // Returns true if n-th // Fibonacci number is // multiple of 10. function isMultipleOf10(n) { return (n % 15 == 0); } // Driver Code let n = 30; if (isMultipleOf10(n)) document.write("Yes<br>"); else document.write("No<br>"); // This code is contributed by _saurabh_jaiswal
Producción:
Yes
Este código se ejecuta en tiempo O(1).
Este artículo es una contribución de Aditya Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA