蓝桥杯2013年省赛c/c++A组题3(振兴中华)
题目标题: 振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)
从我做起振
我做起振兴
做起振兴中
起振兴中华
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
答案是一个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。
参考答案: 35
解题C语言代码如下
/***********************************************************************************************
*** 蓝桥杯2013年省赛c/c++A组题3(振兴中华) ***
***********************************************************************************************
* *
* Project Name : ----------------- *
* *
* File Name : T3振兴中华.c *
* *
* Start Date : 2020-08-05 *
* *
* Last Update : 2020-08-05 [JYH] *
* *
* 其实此题也可直接利用排列组合解答,最终结果为C^7_3=35 *
*---------------------------------------------------------------------------------------------*
* Functions: *
* main -- 主函数,输出路线种类数目 *
* f -- 递归函数 *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#include <stdio.h>
int f(int m, int n);
/***********************************************************************************************
* main -- 主函数,输出路线种类数目 *
* *
* INPUT: none *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 2020-08-05 JYH : Created. *
*=============================================================================================*/
int main()
{
printf("%d",f(3,4));
}
/***********************************************************************************************
* f -- 递归函数 *
* *
* none *
* *
* INPUT: m -- 行数 *
* n -- 列数 *
* *
* OUTPUT: 路线种类 *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 2020-08-05 JYH : Created. *
*=============================================================================================*/
int f(int m, int n)
{
if(m==0||n==0) return 1;
return f(m-1,n) + f(m, n-1);
}
posted on 2020-08-07 14:56 last_point 阅读(120) 评论(0) 编辑 收藏 举报