看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) stdio stdlib 問題(Question): 無法了解網路上的某篇程式 餵入的資料(Input): C 5 取 3 預期的正確結果(Expected Output):錯誤結果(Wrong Output):程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> #include<stdlib.h> int way[1001]= {0}; int n,m; void make (int now,int a,int n,int m) { int b=a,c; if(now==m+1) { for(c=1; c<=m; c++)printf("%d ",way[c]); printf("\n"); return; } else for(b=a; b<=n; b++) { way[now]=b; make(now+1,b+1,n,m); } } main() { while(scanf("%d %d",&n,&m)==2) make(1,1,n,m); return 0; } 補充說明(Supplement): 已經想破腦袋了 甚至使用暴力法把程式怎麼跑的一一列出 結果就是看到函式進入堆疊以後不斷的recurtion就排出答案 最弄不懂的地方是make前面的兩個參數到底是怎麼做到組合的 希望有人可以幫我解答一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.68.131
firejox:我在想這有沒有打錯啊... 05/03 22:50
firejox:應該是way[now]+=b吧... 05/03 22:51
lsc36:沒有打錯吧 倒是遞迴可以不用傳n跟m進去... 05/03 23:40
j129008:QQ 05/04 04:26