while (true) {
for (j = 0; j < m;) //在圈中数m个人
{
i = (i + 1) % n; //判断下一个人是否已离开,因为是环形的遇到最后一个+1时i会变成0
if (a[i] >0) j++; //a[i] >0表示第i个人还没有离开
}
//m个人数好了,这时候下一个就是要离开的
if(k==n) break; //k等于n表示只剩下一个人了,这个人就是最后的获胜者,break跳出循环
Systemoutprintln("No" + a[i] + " is out!");
a[i] = -1; //表示该人离开
k++;
}
package ysfh;
/
有17个人(编号从1到16),按编号依次排列成一个圆环(编号16的接着编号为1 的人),从编号为1 的人开始报数,数到3的人退出圆环,如此循环,最后留下的那个人的编号是什么?
1,2,3,4,5,6,7,8,,9,10,11,12,13,14,15,16
要求:请用面向对象的思想来处理这个问题并在下面写出具体的代码(可以选择你熟悉的语言,如java/C++/C#等)
@author Administrator
/
public class Ysfh {
public static void main(String[] args) {
m(3,16);
}
public static void m(int m,int n){
int c = 1;
int[] ns = ntoarray(n);
while(isone(ns) == false){//如果数组中有一个以上的数不为0
for (int i = 0; i < nslength; i++) {
if(ns[i] != 0 ){//等于0的都退出了 所以从所有不等于0的开始
if(c == m){//是第三个数 给他赋值0 并让计数器c从1 开始
ns[i] = 0 ;
c = 1;
}else{//否则继续计数器下一个
c++;
}
}
}
}
//循环输出最后留下的数字
for (int i = 0; i < nslength; i++) {
if(ns[i] != 0){//除0以外的数字 0代表删除
Systemoutprintln(ns[i]);
}
}
}
/
将 n 转换为数字 n=3 {1,2,3}
@param n
@return
/
public static int[] ntoarray(int n){
int[] ns = new int[n];
for (int i = 0; i < nslength; i++) {
ns[i] = i + 1;
}
return ns;
}
/
判断数组里是否只有一个数不为0
@param ns
@return
/
public static boolean isone(int[] ns){
boolean isone = false;
for (int i = 0; i < nslength; i++) {
if(isone == false && ns[i] != 0){
isone = true;
}else if(isone == true && ns[i] != 0){
return false;
}
}
return isone;
}
}
public class Byuesefu {
final static int k = 1;//从k开始
final static int n = 8;//总共n个人
final static int m = 3;//数到m时出列
public static void main(String[] args) {
int count=n;
int i;
int tt=0;
boolean[] b=new boolean[n];
for(int j=0;j<blength;j++)b[j]=true;
for(i=k;count>1;i++){
if (i==n) i=0;
if (b[i]==true)
tt++;
if (tt==m) {
tt=0;
b[i]=false;
Systemoutprintln(i+"被踢出");
count--;
}
}
for(i=0;i<blength;i++){
if(b[i]==true){
Systemoutprintln("-----");
Systemoutprintln("还剩"+i+"号");
}
}
}
}
以上就是关于约瑟夫问题求解释(圆桌问题)Java全部的内容,包括:约瑟夫问题求解释(圆桌问题)Java、用java在数组中实现约瑟夫环的问题, 要求写明详细注释, 方法最好简单一点, 初学者,、约瑟夫环问题 java等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)