当前位置: 代码迷 >> C语言 >> josephus问题.
  详细解决方案

josephus问题.

热度:402   发布时间:2004-10-12 13:58:00.0
josephus问题.
josephus问题. #define MAXNUM 100 #define FALSE 0 #define TRUE 1 typedef int DataTypep; void josephus(pseqlist palist,int s,int m) {int s1,i,w; s1=s-1; for(i=palise->n;i>0;i--) { s1=(s1+m-1)%i; w=retrieve(palise,s1); printf("out element %d\n",w); delete_seq(palise,s1); }} main() {pseqlist jos; int i,k; int n,s,m; printf("input n,s,m"); scanf("%d%d%d",&n,&s,&m); jos=createNullList(); if(jos==NUll)exit(1); for(i=0;i<n;i++) { k=insert(jos,i,i+1); if(k==FALSE)exit(1); } josephus(jos,s,m); free(jos); } n个人坐,从s人报数,数到第m人出列.后继续知道没人/ 程序全按书打都不能运行.郁闷好多天拉.
搜索更多相关的解决方案: josephus问题  int  palise  define  

----------------解决方案--------------------------------------------------------

倒,你抄得断章取义的,能运行才怪呢。那来的createNullList()?insert(); retrieve();又在那?


----------------解决方案--------------------------------------------------------

书上是这样写的答案,还是完整的,我就抄下来看看结果而已.

问一下,如果定义的话应该怎么定义,前面还要加点什么.


----------------解决方案--------------------------------------------------------

我会用C++编这个程序,但是 c我就 菜了

不行!!


----------------解决方案--------------------------------------------------------
好象在书上看过,我去帮你找找看
----------------解决方案--------------------------------------------------------

我有道题和你类似

17个人围个圈报数,3的倍数的人离开,一直到最后一个人,然后求这个人的编号

程序如下:

#include <iostream.h> const int num=17; void main() { int interval=3; int a[num]; for(int m=0; m<num; m++) cout <<(a[m]=m+1) <<","; cout <<endl; int i=(interval-1)%num; for(int k=1; k<num; k++){ cout <<a[i] <<","; a[i]=0; for(int j=1; !(a[i]&&(j++==interval)); i=(i+1)%num); //数数 } cout <<"\nNo." <<a[i] <<" boy has won.\n";

} 不过程序中这句int i=(interval-1)%num 我有点不太明白!


----------------解决方案--------------------------------------------------------

我这是c++写的


----------------解决方案--------------------------------------------------------
我看的头晕脑涨
----------------解决方案--------------------------------------------------------
呵呵,头昏
----------------解决方案--------------------------------------------------------
去C++ 板块看我的答案吧
----------------解决方案--------------------------------------------------------