2013蓝桥杯C++A:振兴中华(递归法)

77 篇文章 12 订阅
19 篇文章 1 订阅

三、题目:振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:
在这里插入图片描述
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。请你帮助小明算一算他一共有多少种可能的跳跃路线呢?

虽然说这到题都可以口算出来,但是它还是让我再次体会到了递归的强大


在这里插入图片描述
**分析思路:**本题一共三种操作:①向左跳 ②向下跳 ③当达到边界(下边界和右边界)时就只能延边界走到“华”字了
这样考虑之后怎么走都能走到符合要求的路线,所以不用考虑不符合要求的路线。
只考虑有多少种可能的路线。
变化的参数x和y从(0,0)开始,使用递归法


代码:

#include<iostream>
using namespace std;

int f(int x,int y){  //横纵坐标
if(x==3||y==4)  //当横坐标为3或者纵坐标为4,满足其中一个条件即可输出 
return 1;
return f(x+1,y)+f(x,y+1);  //向左移动,或者向右移动 
}
int main(){
	cout<<f(0,0)<<endl;
	return 0;
}

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值