斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

定义:
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…
这个数列从第3项开始,每一项都等于前两项之和。

现在给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。

我们可以通过先找到距离数N最近的两个Fibonacci数,这两个Fibonacci分别是距离数字N最近的两个数可以起名为R和L,然后通过min(N - L, R - N)找到最小步数。

#include <iostream>
using namespace std;
int main(){
int N, f, L = 0,R = 0,f0 = 0,f1 = 1;
cin >> N;
while(1){
f = f0 + f1;
f0 = f1;
f1 = f;//得出菲波那切数
//找到比N小且距离N最近的数,求出距离
if(f < N)
L = N-f;
else
{
//找到比N大且距离N最近的数,求出距离
R = f - N;
break;
}
}
//取最小距离
cout << min(L,R) ;
return 0;
}

Fibonacci数列(斐波那契数列)相关推荐

  1. C++large fibonacci大斐波那契数列的实现(附完整源码)

    C++large fibonacci大斐波那契数列的实现算法 C++large fibonacci大斐波那契数列的实现算法完整源码(定义,实现,main函数测试) 用于对任意大数执行算术运算的库lar ...

  2. Python - Python3 编程第一步 Fibonacci series: 斐波纳契数列

    Fibonacci series: 斐波纳契数列, 两个元素的总和确定了下一个数,例如:1 1 2 3 5 8 13 21 34 55 Python程序如下: def fibonacci1(n):a, ...

  3. HDU1568 Fibonacci【斐波拉契数列】

    Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. HDU-A Fibonacci sequence斐波那契数列-大数求和

    问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Fibonacci.cpp *作 者:单昕昕 *完成日期 ...

  5. 第十一章 ALDS1_10_A:Fibonacci Number 斐波那契数列

    问题链接 ALDS1_10_A:Fibonacci Number 问题内容 求出斐波那契数列的第n项的值. 思路 递推并记录前n项的值到数组,求第n项的值时用到第n-1项和第n-2项,这样我们先记录开 ...

  6. 斐波那契数列不用数组_兔子数列——斐波那契数列

    相信人们都对斐波那契数列有或多或少的了解,如果没有,那你一定听过黄金分割比或是见过下面这种图片: 斐波那契生活在十三世纪的意大利,原名列奥纳多·皮萨诺(Leonardo Pisano),他出生在意大利 ...

  7. matlab斐波那契数列画图,斐波拉契数列 斐波那契数列 matlab程序

    斐波那契数列数列从第3项开始,每一项都等于前两项之和. 例子:数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,25 ...

  8. 斐波那契数列编程python_fibonacci数列-斐波那契数列-python编程

    未完待续~ 了解fibonacci数列: 斐波纳契数列(Fibonacci Sequence),又称黄金分割数列. 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610 ...

  9. c语言斐波那契数列_神奇的数列——斐波那契数列

    斐波那契数列之美 斐波那契是一位数学家,生于公元1170年,籍贯大概是比萨,卒于1240年后.1202年,他撰写了<珠算原理>(Liber Abaci)一书.他是第一个研究了印度和阿拉伯数 ...

  10. HDU1250 Hat's Fibonacci 大数斐波那契数列

    点击打开链接 Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

最新文章

  1. C#: static关键字的作用
  2. 国内35所人工智能学院大盘点
  3. 三星android功能怎么用,三星GALAXY S II升级Android 4.0新功能介绍及使用技巧
  4. 最高75K,至多可拿16薪,这个岗位成财富密码?
  5. 领域驱动和MVVM应用于UWP开发的一些思考
  6. 算法面试:栈实现队列的方案
  7. java反射 反射构造函数 报 wrong number of arguments 错误
  8. VC6.0建立新工程的步骤---解决win11使用不了VC6的方法以及自用版本VC6下载
  9. html5 3d 图片动画制作软件,9款令人惊叹的HTML5 3D动画应用
  10. 开发3dMax插件的方法和应用
  11. halcon例程学习笔记(10)---图像灰度共生矩阵cooc_feature_image.hdev
  12. yum clean all 是什么意思
  13. 192.168.8.1手机登陆_192.168.8.1登录入口上网设置
  14. LQA: Time of day is written with a “dot” not a “colon” (13.14 not 13:14)
  15. 公众号读者突破 10000 啦!啥也别说了,送书!
  16. 完美云主机购买小技巧分享
  17. java性能优化总结_35 个 Java 代码性能优化总结(一)
  18. 设计一个三维向量类 并实现向量的加法 减法以及乘法除法
  19. 公众平台新增修改文章错别字功能 每篇文章允许被修改一次仅限正文内五个字...
  20. 软件工程中过程设计的工具

热门文章

  1. Windows电脑如何开启CPU虚拟化
  2. 技嘉主板+AMD CPU开启CPU虚拟化方法
  3. 电脑不停,电脑不停重启
  4. 投资理财启蒙之定投出一个千万富翁?
  5. 开放正成为华为下一阶段的战略竞争力
  6. 计算机cpu有什么作用是什么意思,电脑中的cpu有什么作用?CPU是什么?
  7. 10月24日——程序猿的节日
  8. inurl home.php,phpweb /version.php Vul
  9. 计算机spec分值怎么算,四级怎么算分数公式(历年四级常模均值)
  10. 【SpringCloud系列】 分布式事务-LCN