本帖最后由 十万一千 于 2014-10-7 00:23 编辑
最后一题- package com.itheima.test;
- import java.util.LinkedList;
- import java.util.List;
- public class 踢数 {
- // 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- public static void main(String[] args) {
- List<Integer> circle = new LinkedList<Integer>();
- for (int i = 1; i <= 100; i++) {
- circle.add(i);
- }
- System.out.println("剩余编号:" + ti(circle, 1, 14));
- }
- private static Integer ti(List<Integer> circle, Integer first, Integer kill) {
- if (circle.size() == 1) {
- return circle.get(0);
- } else {
- for (int i = 0; i < circle.size(); i++) {
- if (first == kill) {
- circle.remove(i);
- first = 0;
- i--;
- }
- first++;
- }
- return ti(circle, first, kill);
- }
- }
- }
复制代码
|