题意:
思路:
public class 机器人走方格 {
public static void main(String[] args) {
System.out.println(f1(9,3));
System.out.println(f2(9,3));
}
//用递归
public static int f1(int x,int y) {
if(x==1||y==1) return 1;
return f1(x,y-1)+f1(x-1,y);
}
//用迭代
public static int f2(int m,int n) {
int[][] arr=new int[m+1][n+1];
for(int i=1;i<=m;i++)
arr[i][1]=1;
for(int i=1;i<=n;i++)
arr[1][i]=1;
for(int i=2;i<=m;i++) {
for(int j=2;j<=n;j++) {
arr[i][j]=arr[i][j-1]+arr[i-1][j];
}
}
return arr[m][n];
}
}