Dado un número n, encuentre el n-ésimo número de Fibonacci. Tenga en cuenta que n puede ser grande.
Ejemplos:
Input : 100 Output : 354224848179261915075 Input : 500 Output : 139423224561697880139724382870 407283950070256587697307264108962948325571622 863290691557658876222521294125
Requisito previo: clase BigInteger en Java , números
de Fibonacci Fibonacci de gran número puede contener más de 100 dígitos, BigInteger puede manejarlo fácilmente en Java. La clase BigInteger se usa para la operación matemática que involucra cálculos de enteros muy grandes que están fuera del límite de todos los tipos de datos primitivos disponibles.
JAVA
// Java program to compute n-th Fibonacci // number where n may be large. import java.io.*; import java.util.*; import java.math.*; public class Fibonacci { // Returns n-th Fibonacci number static BigInteger fib(int n) { BigInteger a = BigInteger.valueOf(0); BigInteger b = BigInteger.valueOf(1); BigInteger c = BigInteger.valueOf(1); for (int j=2 ; j<=n ; j++) { c = a.add(b); a = b; b = c; } return (b); } public static void main(String[] args) { int n = 100; System.out.println("Fibonacci of " + n + "th term" + " " +"is" +" " + fib(n)); } }
Fibonacci of 100th term is 354224848179261915075
Tenga en cuenta que la solución anterior toma O (n) tiempo, podemos encontrar el n-ésimo número de Fibonacci en O ( log n) tiempo . Como ejercicio, encuentre el n-ésimo número de Fibonacci para n grande en tiempo O(log n).
Este artículo es contriBigInteger.valueOf (1); pero por Pramod Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@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