4103:踩方格
题目链接http://bailian.openjudge.cn/practice/4103/
#include<iostream>
using namespace std;
long long solve(int n, int s) {
if (n == 0)
return 1;
long long temp = 0;
if (s == 0) {
temp += 2 * solve(n - 1, 1);//向西和东走
temp += solve(n - 1, 0);//向北走
}
else if (s == 1) {
temp += solve(n - 1, 0) + solve(n - 1, 1);//向北+向西(东)
}
return temp;
}
int main() {
int n;
cin >> n;//n表示还有多少步要走,
printf("%lld",solve(n,0));//0表示有三个方向可以走,1表示只有两个方向可以走
return 0;
}