有一个 X*Y 的网格,小团要在此网格上从左上角到右下角,只能走格点(也即格子的顶点)且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数 int x , int y ,请返回小团的走法数目。
数据范围: 
输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。
输出包括一行,为走法的数目。
3 2
10
var a = readline().split(" ");
var x = +a[0];
var y = +a[1];
var arr = [];
for(let i=0; i<=x; i++){
arr[i] = [];
for(let j=0; j<=y; j++){
if(i===0&&j===0){//[0][0]位置是0
arr[i][j] = 0;
}else if(i===0||j===0){//横坐标或纵坐标为0的都只有一种可能
arr[i][j] = 1;
}else {
arr[i][j] = 0;
}
}
}
for(let i=1; i<=x; i++){
for(let j=1; j<=y; j++){
arr[i][j] = arr[i-1][j]+arr[i][j-1];//倒着想每一步都有两种可能,从上面下来的或者是从左边过来的
}
}
console.log(arr[x][y]);
虽然我觉得我这个有点麻烦了,不过思路比某个要好懂一些~
while(line = readline()){
var lines = line.split(' ');
var a = parseInt(lines[0]),
b = parseInt(lines[1]);
function cellCount(x,y){
var arr =[];
//每个格点初始化为1
for(var i=0; i<=x;i++){
arr[i]=[];
for(var j=0; j<=y;j++){
arr[i][j] = 1;
}
}
//每个格点的值是其左边和上边格点值的和
for(var i=1;i<=x;i++){
for(var j=1;j<=y;j++){
arr[i][j] = arr[i-1][j] + arr[i][j-1];
}
}
return arr[x][y];
}
print(cellCount(a,b));
}