计算斐波那契数最小差值

时间:2020-04-26
本文章向大家介绍计算斐波那契数最小差值,主要包括计算斐波那契数最小差值使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给定一个正整数n,计算n与斐波那契数的最小差值(绝对值)
说明:
斐波那契数定义:
                          从0,1开始后面的数值为前面两者之和, 即第三个数为第一和第二个数之和
                          形如:0,1,1,2,3,5,8,13,21。。。。  其中3为1与2的和,5为2与3的和,8为3与5的和等等
要计算的数值案例:
                          输入15,与斐波那契数相减,与13相减的绝对值是2,与21相减的绝对值是6,与众多斐波那契数相减的最小差值为2
                          因此输入15,输出2

输入描述:
输入任意正整数
输出描述:
数组正整数
输入例子1:
15
输出例子1:
2
例子说明1:
15与“0,1,1,2,3,5,8,13,21。。。。”当中的13差值的绝对值最小,与21的差值为6,与8的差值为7

 1 #include <iostream>
 2 #include <vector>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int main(){
 7     vector<int>v;
 8     v.push_back(0);
 9     v.push_back(1);
10     int n,i=2;
11     cin>>n;
12     while(1){
13         v.push_back(v[i-1]+v[i-2]);
14         if(v[i]>=n)
15             break;
16         i++;
17     }
18     if(v[i]==n||n==0)
19         cout<<'0';
20     else if(v[i]>n){
21         cout<< min(abs(v[i]-n),abs(v[i-1]-n));
22     }
23     return 0;
24 }

原文地址:https://www.cnblogs.com/PennyXia/p/12777663.html