AOJ-problem-879

来源:互联网 发布:新开的淘宝店怎么刷钻 编辑:程序博客网 时间:2024/05/16 09:18

                                                                                                                      过河卒

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;}


原创粉丝点击