过河卒
Description
象棋盘上的过河卒具有如下的特点:可以向前向左和向右,不能向后。假定棋盘很大,过河卒恰好走N步(N不超过30) 且不经过已走的点共有多少种走法?
Input
走的步数n。
Output
过河卒恰好走N步(N不超过30) 且不经过已走的点共有多少种走法。
分析:
列两个数组:up描述当前步向上走的走法,side描述当前向两边走的走法.
分析下可以得出:
up[i]=up[i-1]+side[i-1];
side[i]=2*up[i-1]+side[i-1];
注意:数据过大用long long.
代码:
#include<iostream>
using namespace std;
int main()
{
long long up[35]={0},side[35]={0};
int n;
cin>>n;
up[1]=1;
b[1]=2;
for(int i=2;i<=n;i++)
{
up[i]=up[i-1]+side[i-1];
b[i]=2*up[i-1]+side[i-1];
}
cout<<up[n]+side[n]<<endl;
cin.get();
cin.get();
return 0;
}

本文探讨了象棋中过河卒的特定走法规则及其算法实现。过河卒只能前进及左右移动,不可后退。文章通过递推公式计算出在限定步数内不重复经过同一位置的所有可能走法数量。
434

被折叠的 条评论
为什么被折叠?



