A29785. 最近的斐波那契数
填空题
中等
知识点
题目描述
最近的斐波那契数
题目描述
斐波那契数列 Fn的定义为:对n≥0有Fn+2=Fn+1+Fn、初始值为 F0=0和F1=1。所谓与给定的整数N最近的斐波那契数是指与N的差之绝对值最小的斐波那契数。
本题就请你为任意给定的整数 N 找出与之最近的斐波那契数。
输入
输入在一行中给出一个正整数N(≤10^8)
输出
在一行输出与N最近的斐波那契数。如果解不唯一,输出最小的那个数。
输入样例
305
输出样例
233
参考答案
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n==1){ //特殊情况
cout<<1;
return 0;
}
int a[100]={0,1};
for(int i=2;i<=50;i++){
a[i]=a[i-1]+a[i-2]; //求斐波那契数列
if(a[i]>=n && a[i-1]<n){
if(a[i]-n < n-a[i-1]) cout<<a[i];
else cout<<a[i-1];
return 0;
}
}
return 0;
}
上一题
下一题