测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题