华为机试HJ91:走方格的方案数

简介: 华为机试HJ91:走方格的方案数

题目描述:

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

本题含有多组样例输入。

输入描述:

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

输出描述:

每组样例输出一行结果

示例:

输入:

2 2

1 2


输出:

6

3


解题思路:

这题可以用递归解决。即从终点倒推,到达终点的走法种类数,是其上方格子和左侧格子节点走法数的和,以此类推;其中,如果某个格子到达上方边缘或者左侧边缘,则返回1,因为只有一种走法能到达该位置;若递归过程中,m或者n小于0,则返回0。

测试代码:

#include <iostream>
#include <string>
using namespace std;
int func(int m,int n)
{
    if(m==0||n==0)
        return 1;
    else if(m<0||n<0)
        return 0;
    else
        return func(m-1,n)+func(m,n-1);
}
int main()
{
    int m,n;
    while(cin>>m>>n)
    {
        cout<<func(m,n)<<endl;
    }
    return 0;
}
目录
打赏
0
0
0
0
17
分享
相关文章
MT2041 三角形的个数
MT2041 三角形的个数
华为机试HJ60:查找组成一个偶数最接近的两个素数
华为机试HJ60:查找组成一个偶数最接近的两个素数
100 1
剑指offer(C++)-JZ40:最小的K个数(算法-排序)
剑指offer(C++)-JZ40:最小的K个数(算法-排序)
华为机试HJ45:名字的漂亮度
华为机试HJ45:名字的漂亮度
华为机试HJ56:完全数计算
华为机试HJ56:完全数计算
135 0
华为机试HJ86:求最大连续bit数
华为机试HJ86:求最大连续bit数
【牛客网】HJ99 自守数、OR86 返回小于 N 的质数个数
目录 HJ99 自守数 OR86 返回小于 N 的质数个数
107 0
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
AC牛客 BM3链表中的节点每k个一组翻转
AC牛客 BM3链表中的节点每k个一组翻转
97 0
AC牛客 BM3链表中的节点每k个一组翻转