[問題] 遞迴列印的問題

作者: storm654321 (P助)   2015-06-18 17:19:59
假設input x=4 y=8
output為:
1234
1235
1236
1237
1238
1245
1246
1247
1248
1256
1257
1258
1345
1346
1347
1348
1356
1357
1358
.
.(依此類推)
.
5678
我比較直觀的想法是這樣
for(i=1;i<6;i++)
{
for(j=i+1;j<7;j++)
{
for(k=j+1;k<8;k++)
{
for(l=k+1;l<9;l++)
{
printf("%d%d%d%d\n",i,j,k,l);
}
}
}
}
居然要用到四層的 for 迴圈
如果我的input x=100 y=1000
想要印出 串遍 的 1 2 3 4 ....100
1 2 3 4 ....101
.
.
901 902 903 904 ......1000
那不就要100個 for 迴圈才辦的到...
請問有不需要那麼多 for 迴圈就能辦到的方法嗎?
作者: Feis (永遠睡不著 @@)   2015-06-18 17:44:00
用陣列只需要一個迴圈
作者: winken2004 (新竹肥宅)   2015-06-18 17:44:00
我看不懂input跟output的關係 QQ
作者: diabloevagto (wi)   2015-06-18 21:23:00
陣列
作者: firejox (Tangent)   2015-06-18 23:49:00
陣列
作者: bigpigbigpig (To littlepig with love)   2015-06-19 11:37:00
作者: johnjohnlin (嗯?)   2015-06-20 13:34:00
backtracking?
作者: EdisonX (卡卡獸)   2015-06-20 13:56:00
如果不介意用 C++ 的話,可以借助 next_permutation ,你原本的是 C(n,m) , 函式庫提供的是 P(n,m) , 加一點東西就可達到需求. http://ideone.com/Ha220f 參考下.

Links booklink

Contact Us: admin [ a t ] ucptt.com