藍橋杯 - 未名湖邊的煩惱(遞歸)

這是一道遞歸題,
首先,如果借鞋子的人n比還鞋子的人m多的話,一定是不成立的
如果借鞋子n爲0的時候那麼只有一種排序方法,
那麼我們可以根據這個來推出其他人數的情況
ans(m-1,n)意思是還鞋子的一個人站在最前面,之後剩下的哪些人再接着排序
ans(m,n-1) 意思是借鞋子的人站在最後面,剩下的再接着排序。

#include<cstdio>

using namespace std;

int ans(int m, int n){
    if (m < n) return 0;
    if (n == 0) return 1;
    return ans(m-1, n)+ans(m, n-1);

int main() {
    int m=0, n=0, s=0;
    scanf("%d %d", &m, &n);
    s = ans(m, n);
    printf("%d\n",s);
    return 0;
}

發佈了155 篇原創文章 · 獲贊 16 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章