从面向结构到面向对象-----josephus问题(方法二:结构的应用)
2005-01-09 13:29
323 查看
今天看了一下josephus问题,突然有点想写些东西的冲动,结合自己的部份思想,于是便写了这几篇帖子。因为有几篇代码有点长,就分开发吧。如果对你有什么帮助的话,本人胜感欣慰。也许你会说,这个问题好多书上都有代码,但本人诣在于用不同的方法写出,让初学者体会一下从面向结构到面向对象的不同之处;同时你也可以看看我写的和一些书中的不同之处。如果你是个大虾,大可一笑了之,或赐教一番。
josephus问题:几个小孩围成一圈,从任意一个小孩间隔m顺时针方向数起,每数到第m个小孩时,该小孩就离开。最后一个剩下的就为胜利者。第几个为胜利者?
josephus问题:几个小孩围成一圈,从任意一个小孩间隔m顺时针方向数起,每数到第m个小孩时,该小孩就离开。最后一个剩下的就为胜利者。第几个为胜利者?
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //方法二:结构的应用 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #include <iostream.h> #include <iomanip.h> struct jose { int code; jose *next; }; void mian() { int numOfBoys,interval; cout<<"Please input the number of boys," <<endl <<"interval of counting:"; cin>>numOfBoys>>interval; jose *pJose=new jose[numOfBoys]; jose *pCurrent=pJose; int itemsInLine=0; for(int i=1;i<=numOfBoys;i++) { pCurrent->next=pJose+i%numOfBoys; pCurrent->code=i; pCurrent=pCurrent->next; if(itemsInLine++%10==0) cout<<endl; cout<<setw(4)<<i; } itemsInLine=0; int numOfCount; cout<<"please input the number of count:" <<endl; while(1) { cin>>numOfCount; if(0<numOfCount&&numOfCount<=numOfBoys) break; } jose *pivot; pCurrent=&pJose[numOfCount-1]; while(pCurrent->next!=pCurrent) { for(int j=0;j<interval;j++) { pivot=pCurrent; pCurrent=pivot->next; } if(itemsInLine++%10==0) cout<<endl; cout<<setw(4)<<pCurrent->next; pivot->next =pCurrent->next; pCurrent=pivot; } cout<<endl <<"the winner is:" <<pCurrent->code <<endl; delete []pJose; } |
相关文章推荐
- 从面向结构到面向对象-----josephus问题(方法一:数组的应用)
- 从面向结构到面向对象-----josephus问题(方法三:结构化方法的实现)
- 从面向结构到面向对象-----josephus问题(方法四:面向对象的实现)
- 从面向结构到面向对象-----josephus扩展问题(一)
- 从面向结构到面向对象-----josephus扩展问题(二)
- 编程瑕想:面向结构、面向对象、面向线程-->基于类库重用的面向应用软件开发
- 马士兵 Java 第5章(1) 分别使用面向对象和面向结构(数组)的设计方法来实现“数三退一”
- animateWithDuration 这样的方法,在第二次应用到某个view上动画时间无效问题
- Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
- 彻底解决Android 应用方法数不能超过65K的问题
- Josephus问题解决方法二
- <转>UNIX 共享内存应用中的问题及解决方法
- 苹果应用审核及相关问题解决方法
- .Net反射技术应用解决对象不同版本方法不同参数的问题
- July 30, 10:00-16:45, 1309 多项式方法在调和分析问题中的应用
- (2013-4-21)数据结构实验三:狐狸逮兔问题(方法二:链式)
- [转载]AAF灵便应用框架简介系列(6):休息一下,泛谈面向对象 Why OO+多层结构?
- 解决Android 应用方法数不能超过65K的问题
- Java面向对象 第一章 面向对象开发方法概述
- day34 反射、面向对象内置方法:如__str__、面向对象的软件开发