已知unsigned long long的最大值:18446744073709551615
一共20位数最多
所以用unsigned long long 只能计算斐波那契数列前94位 如果n比94大就不可以了
因为我之前已经写过一篇关于求所有的了 所以这里只想偷懒的说下求前94位数的方法,也就是打表
顺便我在这里把斐波那契表 展示一下
粘贴的百度文库 见谅
#include<bits/stc++.h>
using namespace std;
#define MAXN 200
typedef unsigned long long ULL;
ULL fn[MAXN+1];
void setfn()
{
int i;
fn[0] = 0;
fn[1] = 1;
fn[2] = 2;
for(i=3; i<=MAXN; i++)
fn[i] = fn[i-2] + fn[i-1];
}
int main(void)
{
int n;
// 先打表
setfn();
while(scanf("%d", &n) != EOF)
printf("%llu\n", fn[n]);
return 0;
}