华为-统计每个月兔子的数量

题目链接

https://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395?tpId=37&tqId=21260&tPage=2&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking

题目描述

有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?

 

    /**
     * 统计出兔子总数。
     * 
     * @param monthCount 第几个月
     * @return 兔子总数
     */
    public static int getTotalCount(int monthCount)
    {
        return 0;
    }

输入描述:

输入int型表示month

输出描述:

输出兔子总数int型

示例1

输入

复制

9

输出

复制

34

题解:

从第3个月开始的每月兔子的递推公式:f[n] = f[n-1] + f[n-2]

#include 
using namespace std;
const int MAX = 100;
int buf[MAX];
void init(){
  buf[1] = buf[2] = 1;
  for (int i = 3; i <= 100; i++){
    buf[i] = buf[i - 1] + buf[i - 2];
  }
}
int main(){
  int n;
  init();
  while (cin >> n){
    cout << buf[n] << endl;
  }
  return 0;
}

 

你可能感兴趣的:(华为oj)