`

一个经典编程题目,可用各种编程语言求解

阅读更多
如题:有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();

}
}

分享到:
评论

相关推荐

    一元三次方程求解.zip

    标题中的“一元三次方程求解”表明我们要讨论的是数学中的一个重要概念,即如何解决一个形式为 ax^3 + bx^2 + cx + d = 0 的方程,其中a、b、c和d是常数,x是变量。在计算机科学中,尤其是在算法和程序设计领域,这...

    蛮力发求解问题经典题目c++代码

    2. **大数阶乘的长度(Length of Large Factorial)**:计算一个大数的阶乘并确定其长度,可以通过逐个乘以所有小于等于该数的正整数得到。虽然这种方法在大数运算时效率低下,但对较小的数,可以直接计算并统计位数...

    有限差分法求电磁场分布-电磁场程序.rar

    matlab编程求解,有程序清单,要看到话看附件 电磁场程序设计 ——采用有限差分法计算屏蔽微带传输线的电位及其电容 题目 屏蔽微带传输线 当微带线工作在低频时,其电容和电感可用静态分析得到, 这相当于在...

    ACM动态规划题目收集【来源北航-编程啦】

    本题是关于ACM动态规划的一个实例,旨在解决一个实际问题,即找到在给定二维矩阵中可以构建的最大正方形广场,其中0代表可用区域,1代表不可用区域。 题目描述了一个古老的部落需要建造祭祀广场的故事,而这个广场...

    NOC图形化编程模拟题一模拟题附答案

    - **解析**:背景列表显示了所有可用的背景,用户可以通过特定的积木块(例如“切换到下一个背景”或“切换到背景...”)来改变当前背景。这些积木块通常位于外观模块中。 ##### 5. 添加自定义角色 - **知识点**:...

    hdu题目分类

    - **1025**:经典的DP题目,最长递增子序列问题,这是一个经典的DP题目,通常需要采用NlogN的时间复杂度来实现。 - **1028**:整数拆分问题,通过母函数解决,这也是一个典型的DP题目。 - **1051**:经典贪心或DP题...

    各大企业笔试面试题目精华合集

    编程题目通常是笔试的重点,涵盖了C、C++、Java、Python等主流编程语言。这些题目可能涉及基础语法、数据结构(如数组、链表、栈、队列、树、图)、排序和搜索算法(如冒泡排序、快速排序、二分查找、深度优先搜索、...

    VB编程程序填空题目练习

    - 使用 `FreeFile` 函数获取一个可用的文件号。 - 通过 `Open` 语句打开一个名为 `test.txt` 的文件,模式为 `Output`(输出)。 - 使用 `For` 循环五次,每次循环向文件中写入 `"*****"`。 - 最后关闭文件。

    郑州大学ACM竞赛题目及答案

    这是一个经典的动态规划问题,可以通过状态转移方程解决。对于偶数个硬币,最优策略是从一侧翻转,使得每次操作都能使未翻转的硬币数量减半,从而达到最小操作次数。 2. **连续自然数和**: - 给定一个自然数M,求...

    C++编程练习题.pdf

    22. 母牛增长问题:这是一个典型的指数增长模型,可用递推公式求解。 24. 正整数平均值:使用循环接收输入,计算正整数的平均值。 25. 累乘求和:三种循环结构实现102!nn的计算。 26. 方程求解:使用暴力穷举法或...

    《电子学会Scratch考级》2019年12月图形化编程 二级考试真题(含答案)

    根据题目描述,可以推断出程序中可能包含有重复执行转动和前进的指令,从而形成一个正多边形。选项B表示正四边形,即正方形,符合题目要求。 ##### 12. 播放声音的控制方式 **题目描述**:要实现按下空格键播放...

    华为c++笔试题目 笔试题目

    - 判断浮点数x是否接近于零,可以使用一个较小的正数ε作为误差范围,例如:`if(std::abs(x) ε)`。 10. Internet使用的网络协议: - TCP/IP协议是Internet的基础,它包括应用层、传输层、网络层、数据链路层和...

    迷宫问题 假设迷宫由m行n列构成,有一个入口和一个出口,入口坐标为(1,1),出口坐标为(m,n),试找出一条从入口通往出口的最短路径。设计算法并编程输出一条通过迷宫的最短路径或报告一个“无法通过”的信息。

    在这个迷宫问题中,我们需要设计一个算法来找到从入口(1,1)到出口(m,n)的最短路径。题目要求不能使用递归算法,但可以用栈和队列来实现。这个问题可以被视为一种广度优先搜索(Breadth-First Search, BFS)的应用,...

    美赛教程&建模&数据分析&案例分析&文档写作&编程实现等资源.docx

    参赛队伍需在规定时间内完成一个或多个问题的数学建模,涉及的知识领域广泛,包括但不限于微积分、概率论与数理统计、线性代数、运筹学等,并通过编程实现模型的求解和可视化。 #### 二、教程资源 1. **数学建模...

    2019年MathorCup高校数学建模挑战赛题目.7z

    4. **编程实现**:Python、MATLAB、R语言等工具常用于数学建模,它们提供了丰富的库和函数,可以快速实现模型求解和数据分析。 5. **数据处理**:数据清洗、预处理、特征选择等步骤对模型的准确性有着直接影响。这...

    leetcode全套解答python版本

    LeetCode是一个广受欢迎的在线编程挑战平台,致力于帮助程序员提升技能,特别是面试准备。这个压缩包“lc-all-solutions-master”包含了使用Python语言解决LeetCode所有问题的代码,覆盖了从基础算法到复杂数据结构...

    分治法实现比赛日程安排

    在Java语言环境下,我们可以构建一个高效且灵活的解决方案。 比赛日程安排问题可能涉及到多个团队、多场比赛以及时间冲突的解决。首先,我们需要理解问题的关键要素:比赛、参赛队伍、比赛时间、场地等。利用分治法...

    材料选择模型的C++程序和Lingo程序.zip

    标题中的“材料选择模型的C++程序和Lingo程序.zip”指的是一个压缩文件,其中包含用C++编程语言实现的材料选择模型以及使用Lingo软件编写的程序。这个压缩包可能是一个教学资源或者是一个项目实践的成果,目的是帮助...

    2023年数模B题题目.zip

    数学建模比赛通常要求参赛队伍在限定时间内,针对一个实际问题建立数学模型,通过分析、求解来解决或优化问题,并撰写研究报告。这类比赛旨在锻炼学生的数学应用能力、团队合作精神以及问题解决技巧。 数模题目通常...

Global site tag (gtag.js) - Google Analytics