题解 | #牛吃草捆的问题#
牛吃草捆的问题
https://www.nowcoder.com/practice/e08742c29c43409aa8a64a6b1b1489af
1.考察知识点
数组、动态规划
2.编程语言
C++
3.解题思路
典型的动态规划问题,与上楼梯有多少种方式一样
首先定义动态规划数组dp[n];
确定初态dp[0] = 1;dp[1] = 1;dp[2] = 2;
状态转移方程为dp[i] = (dp[i-1] + dp[i-2])%(1000000007),根据题目要求进行取模运算
最后执行循环,返回结果即可
4.完整代码
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
int countDays(int n ) {
// write code here
//动态规划一维数组
int dp[n+1];
//初态
dp[0] = 1;
dp[1] = 1;
dp[2] = 2;
//循环
for(int i=3;i<=n;i++)
{
//状态转移方程
dp[i] = (dp[i-1] + dp[i-2])%(1000000007);
}
return dp[n];
}