Большие числа Фибоначчи в Java

Опубликовано: 19 Января, 2022

Учитывая число n, найдите n-е число Фибоначчи. Обратите внимание, что n может быть большим.

Примеры:

 Ввод: 100
Выход: 354224848179261915075

Ввод: 500
Выход: 139423224561697880139724382870
         407283950070256587697307264108962948325571622
         863290691557658876222521294125 
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Prerequisite: BigInteger Class in Java, Fibonacci numbers
Fibonacci of large number may contain more than 100 digits, it can be easily handled by BigInteger in Java. BigInteger class is used for the mathematical operation which involves very big integer calculations that are outside the limit of all available primitive data types.

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));
    }
}
Output
Fibonacci of 100th term is 354224848179261915075

Обратите внимание, что приведенное выше решение занимает время O (n), мы можем найти n-е число Фибоначчи за время O (logn). В качестве упражнения найдите n-е число Фибоначчи для больших n за время O (log n).
Это статья contriBigInteger.valueOf (1), но написана Прамодом Кумаром . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью на сайте deposit.geeksforgeeks.org или отправить свою статью по электронной почте: grant@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .