看板 Programming
作者 標題 [請益] 用遞迴實作巢狀迴圈
時間 2010年06月13日 Sun. AM 02:30:50
這是我寫的function show只是輸出 func的三個變數是從多少開始倒數
EX: 321的話 會跑
3 2 1
3 2 0
3 1 1
3 1 0
3 0 1
3 0 0
2 2 1
2 2 0
2 1 0
以此類推
999的話就是從999倒數到000
---------------------------------------------------------------
int temp;
void show(int A,int B,int C)
{
system("cls");
cout<<" "<<A<<" "<<B<<" "<<C<<endl;
Sleep(100);
}
void func(int A,int B,int C) {//這個function可以執行三層的巢狀迴圈
int i =0,j=0;
if(A!=0)//初始值0
{
if(B!=0)//初始值0
{
if(C!=0)//初始值0
{
show(A,B,C);
func(A,B,C-1);
}
else//C=0
{
show(A,B,C);
func(A,B-1,temp);
}
}
else//B=0
{
if(C!=0)
{
show(A,B,C);
func(A,B,C-1);
}
else//B=0&&C=0
{
show(A,B,C);
func(A-1,temp,temp);
}
}
}
else//A=0
{
if(B!=0)//初始值0
{
if(C!=0)//初始值0
{
show(A,B,C);
func(A,B,C-1);
}
else//C=0
{
show(A,B,C);
func(A,B-1,temp);
}
}
else//A=0&&B=0
{
if(C!=0)
{
show(A,B,C);
func(A,B,C-1);
}
else//B=0&&C=0
{
show(A,B,C);
//func(A-1,temp,temp);
}
}
}
}
---------------------------------------------------------------
以上不是重點
重點是
如果我想實作N層迴圈我該怎麼做?
N為一個變數 不一定是多少 所以不能這樣寫死
也就是說
如果我想要寫都是從9開始倒數
但是可以讓使用者自訂要9 99 999 9999 到N個9都可以的跑這種
要怎麼寫阿?
有在消勾勾的答一下吧XD
--
※ 來源: DISP BBS 看板: Programming 文章連結: http://disp.cc/b/33-396
※ 作者: abc1231qa 來自: 134.208.40.177 時間: 2010-06-13 02:30:51
※ 同主題文章:
● 06-13 02:30 □ [請益] 用遞迴實作巢狀迴圈
06-13 04:43 Re [請益] 用遞迴實作巢狀迴圈
06-13 23:28 Re [請益] 用遞迴實作巢狀迴圈
06-14 01:57 Re [請益] 用遞迴實作巢狀迴圈
06-21 21:06 Re [請益] 用遞迴實作巢狀迴圈
10-23 18:48 Re [請益] 用遞迴實作巢狀迴圈
※ 看板: Programming 文章推薦值: 1 目前人氣: 0 累積人氣: 760
回列表(←)
分享