您的位置:首页 > 其它

数学题 —— Fibonacci

2016-05-22 18:15 211 查看

Fibonacci

【题目描述】

Fibonacci 数列定义如下

f[i]=f[i−2]+f[i−1](i>2)

1(i=2)

1(i=1)

请你求 Fibonacci 数列的第 n 项

【输入】

一个整数 n (1<=n<=231−1)

【输出】

一个整数。

Fibonacci 数列的第 n 项 mod 32768 的值。

Solution

很水的题目,经过计算(其实就是打表),我们发现每 49151 就会循环一次。

所以只要输出模意义下的解就行了。

Code

[cpp] #include <iostream>
#include <cstdio>

using namespace std;

int q[49166];

int main(){

freopen(”fibonacci.in”,“r”,stdin);
freopen(”fibonacci.out”,“w”,stdout);

int a=1,b=1,c,n;
scanf(”%d”,&n);

q[1]=q[2]=1;
for(int i=3;i<=49165;i++){
c=(a%32768+b%32768)%32768;
a=b%32768;
b=c%32768;
q[i]=c;
}

int tmp=n%49152;
if(tmp==0)tmp=49152;

printf(”%d\n”,q[tmp]);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: