解题思路:
使用int 型只能拿90的分,所以换成了long long int
p数组表示第i月的幼虫数,dp数组表示第i月的成虫数
成虫数=上个月的成虫+前两个月的幼虫数
幼虫数=前x个月的成虫数*y
就像是动态规划一样,分解成子问题然后找到状态转移方程
参考代码:
#include <stdio.h> int main () { int i,j; int x,y,z; long long int p[1001]={0}; long long int dp[1001]={0}; scanf("%d %d %d",&x,&y,&z); for(i=1;i<=z+1;i++){ if(i>x){//不到x个月只有1对成虫 dp[i]=dp[i-1]+p[i-2]; p[i]=dp[i-x]*y; }else{ dp[i]=1; } } printf("%lld",dp[z+1]); return 0; }
0.0分
157 人评分
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:567 |
输出九九乘法表 (C语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:791 |
买不到的数目 (C++代码)浏览:862 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:604 |
分糖果 (C++代码)浏览:1437 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:448 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:684 |
愚蠢的摄影师 (C++代码)浏览:932 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:553 |