再加上男人:dp[i-1];
加2一个女人:dp[i-2]+x。
上述的另一种情况下dp[i-2]它不仅包括加2女人对法律状况。和x是一个加号ff原违法的法律案后加入,这最后是mf案例,然后,x=dp[i-4](其次是mfff)。
这题要用大数;
#include<math.h> #include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { int n; int dp[1001][101]={0}; dp[0][1]=1; dp[1][1]=1; dp[2][1]=2; dp[3][1]=4; for(int i=4; i<1001; i++) { for(int j=1; j<100; j++) { dp[i][j]+=dp[i-1][j]+dp[i-2][j]+dp[i-4][j]; dp[i][j+1]+=dp[i][j]/10000; dp[i][j]%=10000; } } while(scanf("%d",&n)!=EOF) { int k=100; while(!dp[n][k]) k--; printf("%d",dp[n][k--]); while(k) { printf("%04d",dp[n][k--]); } puts(""); } return 0; }
版权声明:本文博主原创文章,博客,未经同意不得转载。