【题解】方格走法

方格走法

http://www.nowcoder.com/questionTerminal/56f412b9e17e4504b1bbeca96f94a263

题目描述

有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。

输入描述

输入包括一行,空格隔开的两个正整数x和y,取值范围[1,10]。

输出描述

输出一行,表示走法的数目

示例1
输入

3 2

输出

10

因为只能往右或者往下走,所以对于每一个格点来说,走到它的走法数是走到它上边格点的方法数和走到它左边格点的方法数之和。
然后可以发现,第一行和第一列的格点,一定是只有一种方法可以到达的,如图中红色格点所示。
图片说明
这样的话先对这些格点进行初始化,然后从第二行第二列开始遍历剩下的格点,更新数值就好了~
表示走到第 行第 列格点有多少方法,
更新的方式是
更新结束之后, 就是答案了

#include <iostream>

using namespace std;

int main()
{
    int x,y;
    cin >> x >> y;
    x++;y++;//题目中给出的是格子数,而我们要算的是格点,所以需要+1
    int arr[20][20];//数组比范围大一些,防止越界
    for(int i = 1 ; i <= x ; i++)//初始化第一列
    {
        arr[i][1] = 1;
    }
    for(int i = 1 ; i <= y ; i++)//初始化第一行
    {
        arr[1][i] = 1;
    }
    for(int i = 2 ; i <= x ; i++)//更新
    {
        for(int j = 2 ; j <= y ; j++)
        {
            arr[i][j] = arr[i-1][j]+arr[i][j-1];
        }
    }
    cout<<arr[x][y]<<endl;
    return 0;
}
全部评论

相关推荐

就用这个吧:支持多益再加一个空气使用费
点赞 评论 收藏
分享
双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务