【笔试】菲波那切数列应用

原创 2016年08月28日 18:43:10

【2】
Fibonacci数列是这样定义的:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变 为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。
输入描述:
输入为一个正整数N(1 ≤ N ≤ 1,000,000)

输出描述:
输出一个最小的步数变为Fibonacci数”

输入例子:
15

输出例子:
2

#include <iostream>
#include <math.h>
using namespace std;
int Fibonacci(int n)
{
    if(n == 0)
        return 0;
    else if(n == 1)
    {
        return 1;
    }
    else
    {
       return  Fibonacci(n-1)+Fibonacci(n-2);
    }
}
int main()
{
    cout<<"请任意输入一个数:";
    int iNum;
    cin>>iNum;
    int n = 0;
    while(!(Fibonacci(n) <= iNum && Fibonacci(n+1) >= iNum))
    {
        n++;
    }
     n--;
    cout<<( abs(iNum - Fibonacci(n))>abs(Fibonacci(n+1) - iNum)?abs(Fibonacci(n+1) - iNum):abs(iNum - Fibonacci(n)))<<endl;
    system("pause");
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

求菲波那切数列数列第n项三种方法小结

求菲波那切数列数列第n项三种方法小结---递归&滚动数组&数学通项公式
  • u010251278
  • u010251278
  • 2016年03月07日 21:02
  • 1618

斐波那契数(C/C++,Scheme)

一、背景斐波那契数的定义: f0=0 f_0 = 0 f1=1 f_1 = 1 fi=fi−1+fi−2(i>1) f_i = f_{i-1}+f_{i-2} (i > 1) 二、分析我引...
  • NoMasp
  • NoMasp
  • 2015年05月25日 21:50
  • 2678

斐波那契数列的递归与循环的算法实现

前半篇转载地址:http://blog.csdn.net/woshisap/article/details/7566946 斐波那契数列,但凡学过编程的童鞋们应该都懂,背景就不介绍了(就是大兔...
  • Micro_Ryan
  • Micro_Ryan
  • 2015年08月22日 09:31
  • 4355

实现斐波那契数列的三种方法

斐波那契数列又称黄金分割数列。它的特点是从第3个数开始,每一个数都等于前面两个数相加。 例:0   1   1   2   3   5   8   13   21.。。。。。 从上我们可以总结出以下规...
  • LLZK_
  • LLZK_
  • 2016年09月06日 16:53
  • 1797

求斐波那契数列的第n项值——9

写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:         0            n = 0        F(n) =  1           ...
  • Miss_Bread
  • Miss_Bread
  • 2017年10月20日 20:41
  • 585

java实现斐波拉契数列

package algorithm.cxg.Fibonacci; import java.util.Scanner; /** * 实现斐波拉切函数 * 斐波拉切数列: * 由0和1开始,之后...
  • captian_900331
  • captian_900331
  • 2015年11月04日 12:42
  • 1234

斐波那契数列使用递归的运行时间分析

在这学期(大三上)去“蹭”了一次校招面试题,编程题中就有一道关于斐波那契数列的编程问题。如果不选择递归求解,需要说明原因。当时还没怎么接触算法这方面的知识(笔者非科班),关于什么运行时间分析、空间复杂...
  • ZeroOnet
  • ZeroOnet
  • 2016年11月17日 11:19
  • 1167

斐波那契数列-java编程:三种方法实现斐波那契数列

题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 //java编程:三种方法实现斐波那契数列 //其一方法: public class Demo2 { // 定义三个变...
  • DuHacker
  • DuHacker
  • 2015年09月08日 19:45
  • 31415

递归转非递归学习二:求斐波那契数列F(N)的值

上《数据结构》的网络课程学习了递归转非递归的机械式转换的方法之后, 先练习写了N的阶乘方法转非递归(模拟栈)的代码,然后试着将斐波那契数列求F(N)的值的过程(模拟栈)转化为非递归: #include...
  • xunmengpiaoyun
  • xunmengpiaoyun
  • 2013年11月28日 18:06
  • 1029

斐波那契数列实例讲解以及C++实现

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(...
  • sinat_24520925
  • sinat_24520925
  • 2015年04月19日 21:25
  • 2328
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【笔试】菲波那切数列应用
举报原因:
原因补充:

(最多只允许输入30个字)