如题:有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();
}
}
分享到:
相关推荐
标题中的“一元三次方程求解”表明我们要讨论的是数学中的一个重要概念,即如何解决一个形式为 ax^3 + bx^2 + cx + d = 0 的方程,其中a、b、c和d是常数,x是变量。在计算机科学中,尤其是在算法和程序设计领域,这...
2. **大数阶乘的长度(Length of Large Factorial)**:计算一个大数的阶乘并确定其长度,可以通过逐个乘以所有小于等于该数的正整数得到。虽然这种方法在大数运算时效率低下,但对较小的数,可以直接计算并统计位数...
matlab编程求解,有程序清单,要看到话看附件 电磁场程序设计 ——采用有限差分法计算屏蔽微带传输线的电位及其电容 题目 屏蔽微带传输线 当微带线工作在低频时,其电容和电感可用静态分析得到, 这相当于在...
本题是关于ACM动态规划的一个实例,旨在解决一个实际问题,即找到在给定二维矩阵中可以构建的最大正方形广场,其中0代表可用区域,1代表不可用区域。 题目描述了一个古老的部落需要建造祭祀广场的故事,而这个广场...
- **解析**:背景列表显示了所有可用的背景,用户可以通过特定的积木块(例如“切换到下一个背景”或“切换到背景...”)来改变当前背景。这些积木块通常位于外观模块中。 ##### 5. 添加自定义角色 - **知识点**:...
- **1025**:经典的DP题目,最长递增子序列问题,这是一个经典的DP题目,通常需要采用NlogN的时间复杂度来实现。 - **1028**:整数拆分问题,通过母函数解决,这也是一个典型的DP题目。 - **1051**:经典贪心或DP题...
编程题目通常是笔试的重点,涵盖了C、C++、Java、Python等主流编程语言。这些题目可能涉及基础语法、数据结构(如数组、链表、栈、队列、树、图)、排序和搜索算法(如冒泡排序、快速排序、二分查找、深度优先搜索、...
- 使用 `FreeFile` 函数获取一个可用的文件号。 - 通过 `Open` 语句打开一个名为 `test.txt` 的文件,模式为 `Output`(输出)。 - 使用 `For` 循环五次,每次循环向文件中写入 `"*****"`。 - 最后关闭文件。
这是一个经典的动态规划问题,可以通过状态转移方程解决。对于偶数个硬币,最优策略是从一侧翻转,使得每次操作都能使未翻转的硬币数量减半,从而达到最小操作次数。 2. **连续自然数和**: - 给定一个自然数M,求...
22. 母牛增长问题:这是一个典型的指数增长模型,可用递推公式求解。 24. 正整数平均值:使用循环接收输入,计算正整数的平均值。 25. 累乘求和:三种循环结构实现102!nn的计算。 26. 方程求解:使用暴力穷举法或...
根据题目描述,可以推断出程序中可能包含有重复执行转动和前进的指令,从而形成一个正多边形。选项B表示正四边形,即正方形,符合题目要求。 ##### 12. 播放声音的控制方式 **题目描述**:要实现按下空格键播放...
- 判断浮点数x是否接近于零,可以使用一个较小的正数ε作为误差范围,例如:`if(std::abs(x) ε)`。 10. Internet使用的网络协议: - TCP/IP协议是Internet的基础,它包括应用层、传输层、网络层、数据链路层和...
在这个迷宫问题中,我们需要设计一个算法来找到从入口(1,1)到出口(m,n)的最短路径。题目要求不能使用递归算法,但可以用栈和队列来实现。这个问题可以被视为一种广度优先搜索(Breadth-First Search, BFS)的应用,...
参赛队伍需在规定时间内完成一个或多个问题的数学建模,涉及的知识领域广泛,包括但不限于微积分、概率论与数理统计、线性代数、运筹学等,并通过编程实现模型的求解和可视化。 #### 二、教程资源 1. **数学建模...
4. **编程实现**:Python、MATLAB、R语言等工具常用于数学建模,它们提供了丰富的库和函数,可以快速实现模型求解和数据分析。 5. **数据处理**:数据清洗、预处理、特征选择等步骤对模型的准确性有着直接影响。这...
LeetCode是一个广受欢迎的在线编程挑战平台,致力于帮助程序员提升技能,特别是面试准备。这个压缩包“lc-all-solutions-master”包含了使用Python语言解决LeetCode所有问题的代码,覆盖了从基础算法到复杂数据结构...
在Java语言环境下,我们可以构建一个高效且灵活的解决方案。 比赛日程安排问题可能涉及到多个团队、多场比赛以及时间冲突的解决。首先,我们需要理解问题的关键要素:比赛、参赛队伍、比赛时间、场地等。利用分治法...
标题中的“材料选择模型的C++程序和Lingo程序.zip”指的是一个压缩文件,其中包含用C++编程语言实现的材料选择模型以及使用Lingo软件编写的程序。这个压缩包可能是一个教学资源或者是一个项目实践的成果,目的是帮助...
数学建模比赛通常要求参赛队伍在限定时间内,针对一个实际问题建立数学模型,通过分析、求解来解决或优化问题,并撰写研究报告。这类比赛旨在锻炼学生的数学应用能力、团队合作精神以及问题解决技巧。 数模题目通常...