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左右,结果出的就比较慢了。题目还要求写个白盒测试的完整用例。

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

  • 相关阅读:
    C#处理json实战
    HDU3994(Folyd + 期望概率)
    POJ1270 Following Orders (拓扑排序)
    HDU 3634 City Planning (离散化)
    HDU4762(JAVA大数)
    POJ3026(BFS + prim)
    POJ1679(次小生成树)
    UVA10487(二分)
    ZOJ 2048(Prim 或者 Kruskal)
    FZU 1856 The Troop (JAVA高精度)
  • 原文地址:https://www.cnblogs.com/lanying/p/4035124.html
Copyright © 2011-2022 走看看