笔试题集锦

1、有N个人围一圈依次报数,数到3的人出列,可以理解有人出列后,下一个从1开始继续报数,问当只剩一个人时他原来的位子在哪里?

 1 public class CircleOut {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8 
 9         final int N = 10;
10         int arr[] = new int[N];
11         int count = 0, num = 0;
12         for (int i = 0; i < N; i++) {
13             arr[i] = i;
14         }
15         for (int i = 0; i < N; i = (i + 1) % N) {
16             if (arr[i] != -1) {
17                 num++;
18                 if (num % 3 == 0) {
19                     count++;
20                     if (count == N) {
21                         System.out.println(arr[i] + " is last");
22                         break;
23                     }
24                     System.out.println(arr[i] + " out");
25                     arr[i] = -1;
26                 }
27             }
28         }
29     }
30 
31 }

未完待续。。

原文地址:https://www.cnblogs.com/nannanITeye/p/3343648.html