从面向结构到面向对象-----josephus问题(方法一:数组的应用)
2005-01-09 13:25
375 查看
今天看了一下josephus问题,突然有点想写些东西的冲动,结合自己的部份思想,于是便写了这几篇帖子。因为有几篇代码有点长,就分开发吧。如果对你有什么帮助的话,本人胜感欣慰。也许你会说,这个问题好多书上都有代码,但本人诣在于用不同的方法写出,让初学者体会一下从面向结构到面向对象的不同之处;同时你也可以看看我写的和一些书中的不同之处。如果你是个大虾,大可一笑了之,或赐教一番。
josephus问题:几个小孩围成一圈,从任意一个小孩间隔m顺时针方向数起,每数到第m个小孩时,该小孩就离开。最后一个剩下的就为胜利者。第几个为胜利者?
josephus问题:几个小孩围成一圈,从任意一个小孩间隔m顺时针方向数起,每数到第m个小孩时,该小孩就离开。最后一个剩下的就为胜利者。第几个为胜利者?
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //方法一:数组的应用 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #include <iostream.h> void main() { int num,interval,*array; cout<<"please input the number of chirlder:"; cin>>num; if((array=new int[num])==NULL) { cout<<"Can't allocate more memory,termination"; exit(1); } for(int i=0;i<num;i++) array[i]=i+1; cout<<"Please input the interval:"; while(1) { cin>>interval; if(interval<=num&&interval>0) break; } for(int i=0;i<num;i++) cout<<array[i]<<" "; cout<<endl; int k=1; int i; cout<<"which number do you want to start count?"; cin>>i; i-=2; while(1) { for(int j=0;j<interval;) { i=(i+1)%num; if(array[i]!=0) j++; } if(k==num)break; cout<<array[i]<<","; array[i]=0; k++; } cout<<endl <<"No"<<array[i]<<"boy's won" <<endl; } |
相关文章推荐
- 从面向结构到面向对象-----josephus问题(方法二:结构的应用)
- 从面向结构到面向对象-----josephus问题(方法三:结构化方法的实现)
- 从面向结构到面向对象-----josephus问题(方法四:面向对象的实现)
- 从面向结构到面向对象-----josephus扩展问题(一)
- 从面向结构到面向对象-----josephus扩展问题(二)
- 马士兵 Java 第5章(1) 分别使用面向对象和面向结构(数组)的设计方法来实现“数三退一”
- datatable应用select方法后变成行数组的问题的解决
- Josephus问题解决方法四(循环数组)
- 使用数组的方法,解决Josephus问题
- [疯狂Java]泛型:泛型构造器、泛型方法的重载问题、泛型数组的问题(应该摒弃)、?下限的典型应用
- 编程瑕想:面向结构、面向对象、面向线程-->基于类库重用的面向应用软件开发
- iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法
- Java基础学习应用_数组常用方法与排序(二)
- 作业 3 应用分支与循环结构解决问题
- 彻底解决Android 应用方法数不能超过65K的问题
- 把perl的hash结构放入数组/堆栈/队列的方法
- 本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- 【作业3】应用分支与循环结构解决问题
- 面向对象设计原则和创建SOLID应用的5个方法