首页 > 解决方案 > 大斐波那契数

问题描述

我正在尝试计算斐波那契数列的元素,我确信我使用的算法很好并且可以做到,但是当涉及到第 100 个元素或第 200 个元素这样的大元素时,我遇到了问题,代码计算元素但结果是错误的。我使用了 double 和 long double 数据类型,但对于巨大的数字,代码仍然给我错误的答案。这是代码:

#include<iostream>
   #include<string>
   using namespace std ;
   int main()
   {
       int n ;
       long double first , second ,current ;
       while(cin>>n)
       {
           first = 0 ;
           second = 1 ;
           if(n==0)
               cout<<0<<endl ;
           if(n==1)
               cout<<1<<endl ;
           else
           {
               for(int i = 2 ; i<=n ; i++)
               {
                   current = first + second ;
                   first = second ;
                   second = current ;
               }
               string digit = to_string(current) ;
               for(int i = 0 ; i<digit.size() ; i++)
               {
                   if(digit[i]=='.')
                       break ;
                   cout<<digit[i] ;
               }
               cout<<endl ;
           }
       }
       return 0 ;
   }

希望你能帮助我。

标签: c++algorithmfibonacci

解决方案


推荐阅读