Joseph环问题
来源:互联网 发布:数据库导入数据的方法 编辑:程序博客网 时间:2024/05/18 03:23
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知N个人(以编号1,2,3…N分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们编号0~n-1,最后结果+1即为原问题的解。
输入描述:输入三个数 N, k , m;
1<= k <= N; 1<= m <= N;
import java.util.Scanner;import java.util.List;import java.util.ArrayList;public class JosephCircle { public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNextInt()) { int N = input.nextInt(); int k = input.nextInt(); int m = input.nextInt(); List<Integer> list = new ArrayList<>(); for(int i = 0; i < N; i++) { list.add(i);//0,1,2...N-1代表编号1,2,3...N } System.out.println(delete(list, k, m)); } input.close(); } private static int delete(List<Integer> list, int k, int m) { int count = 0; for (int i = k - 1; i < list.size(); i++) {//第k个人下标为k-1 if (count == m) { list.remove(i); i--; count = 0; } else { count++; } } while (list.size() > 1) { for (int i = 0; i < list.size(); i++) { if (count == m) { list.remove(i); i--;//因为删除一个元素,后面元素向前移动一位 count = 0; } else { count++; } } } return list.get(0) + 1;//实际编号 }
0 0
- Joseph环问题
- Joseph环问题
- 约瑟夫环问题(joseph)
- 【Joseph问题】poj1012 Joseph
- poj 1012 Joseph环问题
- joseph问题
- joseph问题
- Joseph问题
- {joseph问题}
- Joseph问题
- Joseph问题
- HDU 1443 Joseph 约瑟夫环问题
- [ACM Steps] Joseph 约瑟夫环问题
- joseph环
- JOSEPH环
- joseph环
- PKU1012 Joseph 约瑟夫问题
- 约瑟夫(Joseph)问题
- PHP中的错误处理
- rowid切片,模拟oracle并行
- [LeetCode]problem 174. Dungeon Game
- 多线程常用方法总结
- Effective Objective-C 2.0 读书笔记
- Joseph环问题
- linux基本命令(58)——telnet命令
- iOS中 UICollectionView图片浏览(高性能轮播器)
- EventBus 3.0 (一) 基础
- JavaScrip中cookie的基本使用
- 第十一周项目二 存储班长信息的学生类
- ios开发笔记之十一 --viewDidload的方法的基本介绍用代码设置按钮的属性
- Flask之旅《Flask Web开发:基于Python的Web应用开发实战》学习笔记
- GNU C 、ANSI C、标准C、标准c++的区别和联系