国产一区在线观看视频-国产一区在线免费观看-国产一区在线视频-国产一区在线视频观看-国产一区中文字幕在线观看-国产一线二线三线女

正在閱讀:理解C++面向對象程序設計中的抽象理論理解C++面向對象程序設計中的抽象理論

2005-03-09 16:44 出處:PConline 作者:管寧 責任編輯:xietaoming

  很多書在一開始就開始學習josephus問題,為了讓大家前面學起來較為容易我把前面涉及到此問題的地方都故意去掉了,現在我們已經學習過了結構體和類,所以放在這里學習可能更合適一些。

  在正式開始學習之前我們先回顧一下如何利用數組和結構體的方式來解決,最后我們再看一下如何利用面向對象的抽象理念進行解決此問題的程序設計,相互對比,找出效率最高,最容易理解,最方便維護的程序來,說明利用面向對象的抽象理念進行程序設計的好處。   josephus問題其實就是一個游戲,一群小孩圍成一個圈,設置一個數,這個數是個小于小孩總數大于0的一個整數,從第一個小孩開始報數,當其中一個小孩報到你設置的那個數的時候離開那個圈,這樣一來反復報下去,直到只剩下最后一個小孩的時候那個小孩就是勝利者,寫程序來找出這個小孩。

  以下是數組方法:

  由于數組的限制我們必須預先假設好有多少個小孩,離開的小孩他自身設置為0來標記離開狀態。

  代碼如下:

#include <iostream
using namespace std; 
void main() 

  const int num=10; 
  int interval; 
  int a[num]; 
  for(int i=0; i<num; i++) 
  { 
    a[i]=i+1; 
  }  
    cout <<"please input the interval: "; 
  cin >>interval; 
  for(int i=0; i<num; i++) 
  { 
    cout <<a[i] <<","; 
  } 
    cout <<endl; 
 
int k=1; 
int p=-1; 
 
while(1) 

    for(int j=0;j<interval;) 
    { 
        p=(p+1)%num; 
        if(a[p]!=0) 
        { 
            j++; 
        } 
    } 
    if(k==num) 
    { 
        break
    } 
    cout<<a[p]<<","; 
    a[p]=0; 
    k++; 

cout <<"\nNo." <<a[p] <<" boy've won.\n"; 
cin.get(); 
cin.get(); 
}

  就數組解決來看,程序簡短但效率不高可讀性也不好,此代碼沒有什么特別之處主要依靠一個加1取模的方式來回到首位置,形成環鏈:p=(p+1)%num;。

鍵盤也能翻頁,試試“← →”鍵
302 Found

302 Found


Powered by Tengine
tengine
主站蜘蛛池模板: 精品日韩在线视频一区二区三区 | 超清中文乱码字幕在线观看 | 国产精品原创视频 | 国产草草视频 | 国产免费精彩视频 | 中日韩一区二区三区 | 色婷婷免费视频 | 欧美精品福利视频 | 国产亚洲一区二区三区在线观看 | 欧美日韩影视 | 欧美色域 | 久草最新视频 | 欧美性禁片在线观看 | 日韩欧美一级毛片在线 | 日韩 视频在线播放 | 成人欧美精品大91在线 | 亚洲日本在线观看视频 | 亚洲国产成人九九综合 | 伊人久久亚洲综合 | 亚欧视频在线观看 | 久久精品国产6699国产精 | 国产高清ujzzujzz | 日韩一区二区中文字幕 | 久久综合九色综合91 | 久久99精品久久久久久久不卡 | 四虎国产永久在线精品免费观看 | 国产成人综合久久亚洲精品 | 免费人成激情视频在线看 | 中文字幕.com | 久久久久久亚洲精品中文字幕 | 国产一区二区播放 | 国产精品高清在线观看 | 久久国产大片 | 久久一本精品久久精品66 | 国产精品夜色一区二区三区 | a在线视频 | 婷婷激情在线视频 | 欧美人成毛片在线播放 | 欧美成人区 | 亚洲免费视频在线 | 青草免费 |