c++ - 大斐波那契数
问题描述
我正在尝试计算斐波那契数列的元素,我确信我使用的算法很好并且可以做到,但是当涉及到第 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 ;
}
希望你能帮助我。
解决方案
推荐阅读
- python - 如何订阅所有 SharePoint 网站中的文档更改
- java - 如何将方法从一层映射/更改/实现到另一层?
- json - 提取子元素并将父字段添加到其中
- javascript - 在我终止应用程序之前无法接收 Firebase 消息
- c# - 如何在 Framework 4.x 中将 unicode 代码点转换为字符串?
- python - Python 检查子网的 ipaddress 以创建路由
- image - sRGB与Linear RGB之间转换的准确性以及仅显示图像的亮度分量
- python - Pyglet 着色器不工作,不断出错
- python - 如何在 sphinx 中添加 html 标签?
- swift - 将日期数据从 Picker 传递到 Swift 中的另一个视图控制器