如题:有17个人围成一圈(编号0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止,问此人原来的位置是多少号?
使用java求解答案:
//创建学生类,设置相关属性
public class Student {
public int index=0; //位置编号
public int state=0; //活动状态
Temp t;
public Student(int index,Temp t){
this.index=index;
this.t=t;
}
public void removeStu(){
System.out.println(index+"被移除了");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
t.stus.remove(this);
}
}
public class Temp {
Student stu;
int count=0; //人数
int num =1; //报的数
List<Student> stus=new ArrayList<Student>();
public void search(){
for(int i=0;i<17;i++){
stu=new Student(i,this);
stus.add(stu);
}
while(true){
count=stus.size();
if(count==1){
break;
}
for(int i=0;i<count;i++){
if(num%3==0){
stu=stus.get(i);
stu.state=1;
}
num++;
}
for(int i=0;i<stus.size();i++){
stu=stus.get(i);
if(stu.state==1){
stu.removeStu();
}
}
}
System.out.println("最后一个学生编号为"+stus.get(0).index);
}
public static void main(String[] args) {
Temp t=new Temp();
t.search();
}
}
分享到:
相关推荐
40个经典的Java问题编程求解示例集,比如兔子总数问题、判断101-200之间有多少个素数的问题、打印出所有的 "水仙花数 ",条件运算符的嵌套问题,将一个正整数分解质因数问题,两个正整数m和n,求其最大公约数和最小...
实现一维对流方程的编程求解,含中心差分、向前差分、向后差分三种格式,以及一部分公式记录。
求解线性方程组大家都会,但是你能通过C语言编程实现求解过程吗?...如果这是一个课程设计的题目,你有思路写好设计报告吗? 不用愁,请看这边报告。 这篇报告写的怎么样,大家去看。不过,我的导师给我的成绩是优!
Prolog语言编程练习和 图搜索问题求解,有完整正确的运行程序和截图
C++课程考试试题: 编写一个求解一元二次方程的根的程序,方程的系数由用户输入。 编程环境:vs 2010 控制台应用程序,完美运行!
本书介绍如何使用C++编程语言求解工程问题。书中从通用的5步方法论入手,以犯罪现场调查、地形导航、飓风等级测量等众多热点技术领域的工程问题为应用对象,生动、有趣地讲解了C++语言中的基本操作符、标准输入/输出...
B14. 电路图如下,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流为零,电容电压为0.5V,t=0时刻接入1V的电压,求0<t<15s时,i(t),vo(t)的值,并且画出电流与电容电压的关系曲线。(编程或在simulink中实现)
【推选】C#语言编程求解斐波那契数列湖北科技职业学院PPT资料.ppt
本文详细的用编程的方法对含有无伴电压源机各种受控源的电路求解
数独求解以及数独检查用DLL 包括求解及检查是否为正确数独两个函数
原来CSDN上的是pdg格式的,不方便看。问题求解与编程概念_第6版.pdf
MATLAB求解编程
这个程序是用c++语言编写的,只要有这个编程环境,程序可以运行
求教一道关于求解最优化问题的编程问题~
编程求解1到n之间所有素数之和,输入只有一个n,输出为一个数。
是专门针对《高级语言C++程序设计》一书的各章节内容所精选而配制的213个编程范例。这些具有一定广度与深度的精选范例以及对它们的求解方法与过程,非常适合刚刚开始学习C++程序设计的学生、科技工作者以及自学者来...
R编程求解,作业写在一张A4纸上,正反面打印1、有一堆零件(100到200之间),如果分成4个零件一组的,则多2个零件;4、编程求一个四位数abca,使得abc
Matlab与VisualC混合编程求解车间调度问题.pdf
一道经典的C语言编程练习题目,求解两个很大的整数的和。代码是纯C语言,由详细的注释,可供初学者学习借鉴。
已知二元一次方程ax²+bx+c=0(a≠0),编程实现求解方程的根。(分三种情况考虑) 欢迎大佬指教