本文主要是介绍HUD-2046(递推),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
1 3 2
1 3 2
#include<math.h>
#include<stdio.h>
#include<iostream>
#include<queue>
#include<string.h>
using namespace std;
int main()
{long long int dp[100];dp[1] = 1;dp[2] = 2;dp[3] = 3;//第i个i*2格子如果竖着放那么方法数就是dp[i-1]//第i-1和第i个i*2格子如果横放那么方法数就是dp[i-2]//所以:dp[i] = dp[i - 1] + dp[i - 2];//递推公式就出来了for (int i = 4; i <= 50; i++){dp[i] = dp[i - 1] + dp[i - 2];}int n;while (cin >> n){cout << dp[n] << endl;}return 0;
}
这篇关于HUD-2046(递推)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!