网路走法数目

题目描述
有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。
输入描述:
输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。
输出描述:
输出包括一行,为走法的数目。
示例1
输入
3 2
输出
10

思路

可以根据矩形的对称性,看成是从左下角走到右上角,每个点的方法等于左边的与下面的和,而边上的方法都是1

#include<bits/stdc++.h>
using namespace std;
const int maxx= 11;
int main(){
    int shu[maxx][maxx];
    int n, m;
    cin>>n>>m;
    for(int i= 0; i<= n; i++){
        shu[i][0]= 1;//给边上的赋初始值
    }
    for(int i= 0; i<= m; i++){
        shu[0][i]= 1;
    }
    for(int i= 1; i<= n; i++)
         for(int j= 1; j<= m; j++){
             shu[i][j]= shu[i- 1][j]+ shu[i][j- 1];
             //左边的与下面的相加
         }
    cout<<shu[n][m]<<endl;
        return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_41879093/article/details/82229467