1、問題描述:
n我的圍成一個圈,編號爲1~n,從第一號開始報數,報到3的倍數的人離開,一直數下去,直到最後只有一我的,求此人編號。
2、問題提示:
使用一維數組,數組元素初始爲1,從1開始把數字放進數組空間,若數組元素爲3的倍數,則把其置0,循環下去直到計數器(counter)減爲1,則跳出循環並輸出其數組下標
java
- import java.util.Scanner;
-
- public class Test {
-
-
-
-
- public static void main(String[] args) {
-
-
- System.out.println("請輸入一個數字:");
- Scanner scan = new Scanner(System.in);
- int n = scan.nextInt();
- int counter = n;
- int num = 1;
- int[] array = new int[n];
-
- for (int i = 0; i < array.length; i++) {
- array[i] = 1;
- }
- while (counter > 1) {
- for (int j = 0; j < array.length; j++) {
- if (array[j] != 0) {
- array[j] = num;
- if (num % 3 == 0) {
- array[j] = 0;
- counter = counter - 1;
- if (counter == 1) {
- break;
- }
- }
- num = num + 1;
- }
- }
- }
- for (int k = 0; k < n; k++) {
- if (array[k] != 0) {
- System.out.println("最後贏家的編號爲:" + (k + 1));
- }
- }
-
- }
-
- }