zoukankan      html  css  js  c++  java
  • 斐波那契数列的变形(大众点评2015校园招聘测试岗的第一道编程题)

           帮同学在线笔试做的,题目貌似是两个人同时从路两边开始给马路刷漆,一个人一天刷一米,另一个人一天刷3米。当马路长度为n米时,共有多少种刷法?

           看到题目的第一反应是很熟悉,以前做过类似的,然后脑海中突然闪过斐波那契,在网上搜了一下斐波那契,毕竟时间久了,细节记不得了,很顺利的写出了递推公式,写了个递归就搞定了。

     1 #include<iostream>
     2 using namespace std;
     3 int f(int n)
     4 {
     5 if(n==0) return 0;
     6 if(n==3) return 2;
     7 if(n==2) return 1;
     8 if(n==1) return 1;
     9 else
    10 return f(n-1)+f(n-3);
    11 
    12 }
    13 int main()
    14 {
    15 int n,sum;
    16 while(1)
    17 {
    18 cout<<"请输入道路长度n"<<endl;
    19 cin>>n;
    20 if(n>=0)
    21 {sum=f(n);
    22 cout<<"油漆工刷路的方法有"<<sum<<"种。"<<endl;
    23 }
    24 else
    25 cout<<"输入错误,请重新输入"<<endl;
    26 }
    27 }

    自己做了简单的测试,发现n的数值在200左右,结果出的就比较慢了。题目还要求写个白盒测试的完整用例。

    现在知道的情况是同学进面试了。。。。

  • 相关阅读:
    CentOS 6、CentOS 7系统设置防火墙及使用区别
    HAProxy 使用小记
    oracle快速创建用户、imp/exp导入导出dmp文件
    $@和$*的作用和区别
    根据命令行输出key-value键值对
    mysql备份
    mysql大表归档后清理数据
    redis数据修复记录-1
    redis数据修复记录-2
    调整mysql路径
  • 原文地址:https://www.cnblogs.com/lanying/p/4035124.html
Copyright © 2011-2022 走看看