hdu2046 骨牌展方格
hdu2046 骨牌铺方格
题解:
递推题,如图,
代码如下:
#include <stdio.h> __int64 A[51][30], B[51]; int main() { int n, i, j; for (i=0; i<=50; i++) A[i][0] = 1; for (i=2; i<=50; i++) { for (j=1; j<i/2+1; j++) A[i][j] = A[i-2][j-1] + A[i-1][j]; } for (i=1; i<=50; i++) { for (j=0; j<30; j++) B[i] += A[i][j]; } while (scanf("%d", &n) != EOF) printf("%I64d\n", B[n]); return 0; }
如果仔细观察的话,可以发现递推式:A[i] = A[i-2] + A[i-1];
代码如下:
#include <stdio.h> __int64 A[51] = {0, 1, 2, 3}; int main() { int n, i; for (i=3; i<=50; i++) A[i] = A[i-2] + A[i-1]; while (scanf("%d", &n) != EOF) printf("%I64d\n", A[n]); return 0; }
- 1楼suifengdream昨天 11:04
- 天天编程,天天进步