搜索
熱搜: 活動 交友 discuz
查看: 2247|回復: 0
打印 上一主題 下一主題

[教學] 加計數器

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-14 04:41:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <iostream>
  2. using namespace std;

  3. int HanoiTower(int ,char,char,char);  //return 型態改為int

  4. void main()
  5. {

  6.         int n;
  7.         char A = 'A' , B = 'B' , C = 'C', ans;

  8.         do
  9.         {
  10.                 cout << "Hanoi Tower Implementaion\n";
  11.                 cout << "How many disks in A ? ";
  12.                 cin >> n;
  13.                
  14.                 if ( n == 0 )
  15.                         cout << "no disk to move.\n";
  16.                 else
  17.                      cout<< "共輸出" << HanoiTower(n,A,B,C)<< "次" << endl;   //HanoiTower函數會return int
  18.    
  19.                 cout << "Do you want to continue?\n";
  20.                 cin >> ans;
  21.         }while(ans=='Y' || ans=='y');

  22. }

  23. int HanoiTower(int n,char a,char b,char c)  //傳回型態改為int
  24. {
  25.         static int i=0;  // 設一個靜態int變數,不設的話 會return都會是1而以
  26.             if ( n == 1 )
  27.                 {cout << "Move disk from " << a << " -> " << c << endl;  i++;}//cout一次 ,i 就加一次
  28.         else
  29.         {
  30.                 /*將A上n-1個盤子借助C移至B */
  31.                 HanoiTower(n-1,a,c,b);
  32.                 cout << "Move disk from " << a << " -> " << c << endl;
  33.                                 i++;  //cout一次 ,i 就加一次
  34.                 /*將B上n-1個盤子借助A移至C */
  35.                 HanoiTower(n-1,b,a,c);
  36.         }
  37.                 return i;   //把最後輸出次數 return給main
複製代碼
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2026-6-4 13:37 , Processed in 0.036948 second(s), 16 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表