顯示廣告
隱藏 ✕
看板 Programming
作者 abc1231qa(替咖)
標題 [請益] 用遞迴實作巢狀迴圈
時間 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
※ 看板: Programming 文章推薦值: 1 目前人氣: 0 累積人氣: 760 
分享網址: 複製 已複製
1樓 時間: 2010-06-13 12:25:51 (台灣)
  06-13 12:25 TW
輸入值放陣列比較好吧 如果要可變N那就用動態產生陣列 ... 
要出門晚點再來回
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續