剑指offer 面试题9 递归 非波那且数列

15 篇文章 0 订阅
9 篇文章 0 订阅
/*
这实在没什么好敲的。这里主要讲的几个问题
第一个 面试时如果没有特殊要求 就递归
第二 非波那且 循环不用开数组 只要记录前两个就行了。

其实也不是完全没价值  如果让我 我就开数组了。开尼馬数组干蛋啊 只球fn
还有这里有个题目 挺有意思。。。都是和非波那且有关系的
1
青蛙每次可以跳一个台阶 或者两个 问到第n台阶多少种方法 这个早就知道 就是非波那且的fn
2
如果青蛙每次可以跳任意多个 一共多少中方法 这个也推一下就可以了 是二的n-1次方

3
如果有 一个 长条两个1*1的小方格组成的。
然后有 一个 8*2 的大矩形
问用这中小的组成大的 多少中方法
也是简单的推一下 如果第一个小的 竖着放 就是f(7)
如果横着放
肯定还得横着放一个
所以是f(6)

  还有非波那且有O(logn)的算法 就是不常用
  大概就是一个矩阵的 n-1 次方后 最左上角的哪个就是

*/

#include<iostream>
#include<cstdio>
using namespace std;

int fibonaci(int n)
{
    int res[2]={0,1};
    if(n<2)
    return res[n];
    int num1=0;
    int num2=1;
    int ans;
    for(int i=2;i<=n;++i)
    {
        ans=num1+num2;
        num1=num2;
        num2=ans;
    }
    return ans;
}

int main()
{
    int n;
    while(cin>>n)
    {
        cout<<fibonaci(n)<<endl;
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值