藍橋杯2013年省賽c/c++A組題3(振興中華)
阿新 • • 發佈:2020-08-07
題目標題: 振興中華
小明參加了學校的趣味運動會,其中的一個專案是:跳格子。
地上畫著一些格子,每個格子裡寫一個字,如下所示:(也可參見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); }