关于斐波拉契数列 (等于666是为什么是负数)

·马克图布· 2019-02-11 09:13:50
#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
#include <algorithm>
#define ll long long
using namespace std;
int main()
{

ll n,m;
ll a0=0,a1=1;ll i;
while(cin>>n)
{i=0;a0=0,a1=1;
for( i=0;i<n;i+=2)
{
a0=a0+a1;
a1=a0+a1;
}
if(i==n) cout<<a1<<endl;
else cout<<a0<<endl;}
}
...全文
250 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 星宸大海 的回复:
[quote=引用 1 楼 zjq9931的回复:]超出了 long long 类型所能表示的最大数的极限了。
可是比666大的数,有的为正有的为负啊,还有就是用unsigned longlong为什么结果不一致呢?[/quote] 试了一下在90的时候就不够用了。
  • 打赏
  • 举报
回复
引用 2 楼 星宸大海 的回复:
[quote=引用 1 楼 zjq9931的回复:]超出了 long long 类型所能表示的最大数的极限了。
可是比666大的数,有的为正有的为负啊,还有就是用unsigned longlong为什么结果不一致呢?[/quote] 负负得正前一个为正,后一个为负,也有可能。 unsigned long long 的位数也不够用啊。 用大数类吧。
·马克图布· 2019-02-12
  • 打赏
  • 举报
回复
引用 1 楼 zjq9931的回复:
超出了 long long 类型所能表示的最大数的极限了。
可是比666大的数,有的为正有的为负啊,还有就是用unsigned longlong为什么结果不一致呢?
·马克图布· 2019-02-12
  • 打赏
  • 举报
回复
好吧
  • 打赏
  • 举报
回复
超出了 long long 类型所能表示的最大数的极限了。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧