本文主要是介绍1349: 【递推】【入门】踩方格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:
a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b、走过的格子立即塌陷无法再走第二次;
c、只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。
输入
允许在方格上行走的步数n(n≤20)。
输出
计算出的方案数量。
样例输入
2
样例输出
7
C++:
#include<bits/stdc++.h>
using namespace std;
int n,z[100005][5]={{},{0,1,1,1,3}};
void print(){for(int i=2;i<=n;i++){z[i][1]=z[i-1][4];z[i][2]=z[i-1][1]+z[i-1][2];z[i][3]=z[i-1][1]+z[i-1][3];z[i][4]=z[i][1]+z[i][2]+z[i][3];}cout<<z[n][4];
}
int main(){cin>>n;print();
}
这篇关于1349: 【递推】【入门】踩方格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!