理解C++程序设计中的抽象理论
2008-03-08 21:33:15 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣椤愯姤鎱ㄥ鍡楀幊缂傚倹姘ㄩ幉绋款吋閸澀缃曢梻鍌欑濠€閬嶆惞鎼淬劌绐楅柡宥庡亞娑撳秵銇勯弽顐沪闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�

核心提示:josephus问题是c++中的一个经典题目,在正式开始学习之前我们先回顾一下如何利用数组和结构体来解决josephus问题,理解C++程序设计中的抽象理论,最后我们再看一下如何利用面向对象的抽象理念进行解决此问题的程序设计,相互对比,此代码没有什么非凡之处主要依靠一个加1取模的方式往返到首位置,形成环链:p=(p+1
josephus问题是c++中的一个经典题目,在正式开始学习之前我们先回顾一下如何利用数组和结构体来解决josephus问题,最后我们再看一下如何利用面向对象的抽象理念进行解决此问题的程序设计,相互对比,找出效率最高,最轻易理解,最方便维护的程序来,说明利用面向对象的抽象理念进行程序设计的好处。
josephus问题其实就是一个游戏,一群小孩围成一个圈,设置一个数,这个数是个小于小孩总数大于0的一个整数,从第一个小孩开始报数,当其中一个小孩报到你设置的那个数的时候离开那个圈,这样一来反复报下去,直到只剩下最后一个小孩的时候那个小孩就是胜利者,写程序来找出这个小孩。
以下是数组方法:
由于数组的限制我们必须预先假设好有多少个小孩,离开的小孩他自身设置为0来标记离开状态。
代码如下:
就数组解决来看,程序简短但效率不高可读性也不好,此代码没有什么非凡之处主要依靠一个加1取模的方式往返到首位置,形成环链:p=(p+1)%num;。

更多精彩
赞助商链接