1. 程式人生 > 實用技巧 >藍橋杯2013年省賽c/c++A組題3(振興中華)

藍橋杯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);
}