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

正在閱讀:理解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
主站蜘蛛池模板: 理论毛片 | 青青青青青青久久久免费观看 | 欧美综合色 | 欧美男女性生活视频 | 久久久久久尹人网香蕉 | 毛片毛片 | 日韩伦理亚洲欧美在线一区 | 玖玖国产| 一级特黄高清完整大片 | 国内精品久久久久影院嫩草 | 久久久在线视频精品免费观看 | 99久久久国产精品免费播放器 | 亚洲精品国产精品乱码视色 | 伊人中文字幕在线观看 | 777色狠狠一区二区三区香蕉 | 在线性爱视频 | 热久久这里是精品6免费观看 | 亚洲视频 中文字幕 | 日日夜夜爽 | 精品国产视频在线观看 | 国产情精品嫩草影院88av | 亚洲春色综合另类网蜜桃 | 成人久久久精品乱码一区二区三区 | 色婷婷精品大视频在线蜜桃视频 | 离线枕边人国语在线影视 | 国内精品伊人久久久久7777人 | 伊人网站 | 四虎成人欧美精品在永久在线 | 羞羞网站在线免费观看 | 亚洲精品视频在线观看免费 | www.色日本| 久久影院国产 | 奇米影视555 | 国内精品中文字幕 | 天天曰天天干 | 一区二区午夜 | 99热久久这里只有精品99 | 国产成人a在一区线观看高清 | 天天碰天天摸天天操 | 在线观看黄p免费 | 四虎最新永久免费视频 |