约瑟夫环的编程实现
2006-06-25 04:48
232 查看
题目:在一只热气球上有15个日本人和15个美国人,由于热气球超重,必须要跳下去15个人。按照商讨的规则,从第一个人开始数起,第九个人被选做要跳下的人,以此类推。最终热气球上只剩下15个美国人,试编写一段程序,打印出那15个日本人的位置。
我的实现程序如下:
package com.pclib.www;
public class Josephus {
public static void main(String args[]) {
int p[] = new int[30]; // 全部
int r[] = new int[15]; // 结果
for (int i = 0; i < p.length; i++) {
p[i] = i;
}
int stat = 0;
for (int i = 0, j = 0, k=1;; i++) {
if (stat >= 15) {
break;
}
if (p[i%30]==-1) continue;
k = k % 9;
if (k == 0) {
stat++;
System.out.print(p[i%30]+1+" ");
p[i%30] = -1;
}
k++;
}
}
}
运行结果:9 18 27 6 16 26 7 19 30 12 24 8 22 5 23
该问题出现在csdn社区:http://community.csdn.net/Expert/topic/4835/4835542.xml?temp=.1591608
我的实现程序如下:
package com.pclib.www;
public class Josephus {
public static void main(String args[]) {
int p[] = new int[30]; // 全部
int r[] = new int[15]; // 结果
for (int i = 0; i < p.length; i++) {
p[i] = i;
}
int stat = 0;
for (int i = 0, j = 0, k=1;; i++) {
if (stat >= 15) {
break;
}
if (p[i%30]==-1) continue;
k = k % 9;
if (k == 0) {
stat++;
System.out.print(p[i%30]+1+" ");
p[i%30] = -1;
}
k++;
}
}
}
运行结果:9 18 27 6 16 26 7 19 30 12 24 8 22 5 23
该问题出现在csdn社区:http://community.csdn.net/Expert/topic/4835/4835542.xml?temp=.1591608
相关文章推荐
- 编程实现约瑟夫环问题
- 【约瑟夫】编程实现约瑟夫环
- 约瑟夫环问题编程实现
- 约瑟夫环的问题编程C++实现
- 编程实现约瑟夫环问题
- 网络编程之Socket通信实现文件的复制
- Android编程实现拍照功能的2种方法分析
- 朴素、Select、Poll和Epoll网络编程模型实现和分析——Select模型
- 用循环数组实现约瑟夫环
- socket编程(一),实现服务器与客户端简单通信
- gsoap入门学习笔记(二)---gsoap编程简述以及discover的实现
- 编程实现拉丁方阵。
- 树莓派Linux串口编程实现自发自收
- Windows锁定计算机C代码编程实现
- 【python 编程】文本分类KNN算法实现及结果输出
- 001编程实现单链表的建立
- GUI界面编程——记事本初级实现
- windows平台的ssl编程实现
- 编程技巧:使用LINQ如何通过多次调用GroupBy实现分组嵌套
- Ubuntu下c语言实现并发服务器简单socket编程实例