C语言 · 出栈次序
生活随笔
收集整理的這篇文章主要介紹了
C语言 · 出栈次序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
標(biāo)題:出棧次序
??? X星球特別講究秩序,所有道路都是單行線。一個(gè)甲殼蟲車隊(duì),共16輛車,按照編號(hào)先后發(fā)車, 夾在其它車流中,緩緩前行。
??? 路邊有個(gè)死胡同,只能容一輛車通過,是臨時(shí)的檢查站,如圖【p1.png】所示。
??? X星球太死板,要求每輛路過的車必須進(jìn)入檢查站,也可能不檢查就放行,也可能仔細(xì)檢查。
??? 如果車輛進(jìn)入檢查站和離開的次序可以任意交錯(cuò)。那么,該車隊(duì)再次上路后,可能的次序有多少種?
??? 為了方便起見,假設(shè)檢查站可容納任意數(shù)量的汽車。
??? 顯然,如果車隊(duì)只有1輛車,可能次序1種;2輛車可能次序2種;3輛車可能次序5種。
??? 現(xiàn)在足足有16輛車啊,親!需要你計(jì)算出可能次序的數(shù)目。
??? 這是一個(gè)整數(shù),請(qǐng)通過瀏覽器提交答案,不要填寫任何多余的內(nèi)容(比如說明性文字)。
?
方法一:
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int main(){ 5 int sum=0; 6 int f[17]; 7 memset(f,0,sizeof(f));//注意要賦初值 8 f[0]=1; 9 f[1]=1; 10 f[2]=2; 11 f[3]=5; 12 for(int i=4;i<=16;i++){ 13 for(int j=0;j<=i-1;j++){ 14 f[i]+=f[j]*f[i-1-j]; 15 } 16 } 17 printf("%d",f[16]); 18 return 0; 19 }方法二:
1 #include<stdio.h> 2 int ans=0; 3 void dfs(int n,int r,int i){ 4 if(n==32){ 5 ans++; 6 return; 7 } 8 if(r>i){ 9 if(r<16){ 10 dfs(n+1,r+1,i); 11 } 12 if(i<16){ 13 dfs(n+1,r,i+1); 14 } 15 }else{ 16 if(r==i){ 17 if(r<16){ 18 dfs(n+1,r+1,i); 19 } 20 } 21 } 22 return; 23 } 24 int main(){ 25 dfs(0,0,0); 26 printf("%d",ans); 27 return 0; 28 }?
轉(zhuǎn)載于:https://www.cnblogs.com/panweiwei/p/6682845.html
總結(jié)
以上是生活随笔為你收集整理的C语言 · 出栈次序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ffmpeg webm 提取_使用ffm
- 下一篇: HenCoderPlus资料汇总