这题很明显可以用动态规划来解决:
1.设f[i][j]为走到(i,j)位置上的方法数;
2.到达(i,j)位置只可能从(i-1,j)或(i,j-1)走过来的,则可以得到通式f[i][j] = f[i-1][j] + f[i][j-1];
3.注意边界情况:在第一行和第一列上的格子只有一种方法到达,向下或者想右故f[0][j] = 1;f[i][0]=1
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt()+1;
int m = sc.nextInt()+1;
int[][] f = new int[n][m];
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
if(i==0 || j==0)
f[i][j] = 1;
else{
f[i][j] = f[i-1][j] + f[i][j-1];
}
}
}
System.out.println(f[n-1][m-1]);
}
}
} 


京公网安备 11010502036488号