1. 程式人生 > >藍橋杯C語言培訓2 遞迴原理與構造技巧 例題2 出棧順序

藍橋杯C語言培訓2 遞迴原理與構造技巧 例題2 出棧順序

X星球特別講究秩序,所有道路都是單行線。
一個甲殼蟲車隊,共16輛車,按照編號先後發車,夾在其它車流中,緩緩前行。
路邊有個死衚衕,只能容一輛車通過,是臨時的檢查站,如圖所示。
X星球太死板,要求每輛路過的車必須進入檢查站,也可能不檢查就放行,也可能仔細檢查。
如果車輛進入檢查站和離開的次序可以任意交錯。那麼,該車隊再次上路後,可能的次序有多少種?
為了方便起見,假設檢查站可容納任意數量的汽車。

顯然,如果車隊只有1輛車,可能次序1種;2輛車可能次序2種;3輛車可能次序5種。

#include<stdio.h>

int f(int x,int y)
{
     if(x == 0) return 1;
     if(y == 0) return f(x - 1,1);
     return f(x - 1,y + 1) + f(x,y - 1);
}

void main()  
{
     for(int i = 1 ; i <= 16 ; i ++)
    {
     printf("%d\n",f(i,0));
    }
}