822. 走方格(acwing)
题目:
先讲变量
n:右下角的x值
m:右下角的y值
ans:答案(有几种可能)
a数组:用来存储向下和向右的动作。
x:所在的位置的x值
y:所在位置的y值
x1:下一步可以走到位置的x值
y1:下一步可以走到位置的y值
题型:经典dfs。
代码:
#include<bits/stdc++.h> using namespace std; int n,m,ans=0,a[10][10]={{0,1},{1,0}}; void d(int x,int y) { if(x==n&&y==m) { ans++; return; } else { for(int i=0;i<2;i++) { int x1=x+a[i][1],y1=y+a[i][0]; if(x1<=n&&x1>=0&&y1<=m&&y1>=0) { d(x1,y1); } } } } int main() { cin>>n>>m; d(0,0); cout<<ans; return 0; }