Description
647出去创业赚够了足够多的钱,后来却选择去山沟沟里养牛。一只刚出生的奶牛需要养殖4年开始生的一头奶牛(假设只生母牛),以后每年生一只。647想要设计一个程序,输入n年,可以有多少头奶牛。
思路
本题描述让人费解,意思是,输入n年,那么n年以后有多少奶牛,也就是说在第n+1年刚开始的时候有多少奶牛,比如一头刚出生的奶牛,再经过1、2、3、4年后就能生一头,所以如果n=4,那么答案为2.
此题采用动态规划的解法dp[n]=dp[n-1]+dp[n-4],dp[n-4]是四年前的奶牛数量,也是今天能生一个的奶牛数量。
代码
#include<iostream>
using namespace std;
int main() {
int dp[100];
for (int i = 0; i <= 4; ++i)
dp[i] = 1;
int n;
cin >> n;
++n;
for (int i = 5; i <= n; ++i)
dp[i] = dp[i - 1] + dp[i - 4];
cout << dp[n];
}