华为笔试——走方格的方案数

描述

请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。

注:沿棋盘格之间的边缘线行走

数据范围: 1≤𝑛,𝑚≤8 1≤n,m≤8 

输入描述:

输入两个正整数n和m,用空格隔开。(1≤n,m≤8)

输出描述:

输出一行结果

示例1

输入:

2 2

输出:

6

本题采用递归的思想,由于只能向右或向左,设置类似坐标的x和y,分别得到其能向下或向右搜索的数量,最后递归累加就可以得到答案。

n,m=map(int,input().split())

def search(n,m,x,y):
    if x==n and y==m:
        return 1
    elif x<n and y==m:
        return search(n,m,x+1,y)
    elif x==n and y<m:
        return search(n,m,x,y+1)
    elif x<n and y<m:
        return search(n,m,x+1,y)+search(n,m,x,y+1)

print(search(n,m,0,0))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值