格子问题 蓝桥杯

Posted mj1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了格子问题 蓝桥杯相关的知识,希望对你有一定的参考价值。

m*n的的方格中,起点在左上角,终点在右下角,从起点到终点,只能从上向下,从左向右走,问一共有多少种不同的走法。

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

 

 

 

 

 

解题思路:例如4*4的方格,从格子1走到15,所以第一步有两种走法,向下走一步到5,或者向右走一步到2,在2位置又有两种走法,实际上这与原问题区别只是起始坐标不同,递归解决。想象走到倒数第二步了,也就是15或者12的位置上,这时候就只有一种走法了,返回1。假设递归函数会超过网格的边界,返回0.

1 2 3
4 5 6
7 8 9

 

 

 

 

比如3*3的走格子方法:12369,12569,12589,14569,14589,14789,一共六种方法

代码:

#include<iostream>
using namespace std;

int steps(int x,int y,int m,int n){
   if(x>m||y>n)
 return 0;
   if(x==m-1&&y==n)
 return 1;
   if(x==m&&y==n-1)
 return 1;
 
 return steps(x+1,y,m,n)+steps(x,y+1,m,n);
}

int main(){
   int m,n;
   cin>>m>>n;
   cout<<steps(1,1,m,n)<<endl;
  return 0; 
}

 

以上是关于格子问题 蓝桥杯的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯练习系统历届试题 剪格子 dfs

蓝桥杯-算法训练--ALGO-8 操作格子

格子问题 蓝桥杯

蓝桥杯《操作格子》

操作格子(蓝桥杯)

[蓝桥杯]格子刷漆