描述: 有n个人围成一圈,顺序编号。从第一个人开始报数(从1到m),凡报到m的人退出。问最后一个人的编号是多少? 代码: import java.io.*; import java.util.*; public class Main { static int selectPrince(int m, int n) { boolean prince[] = new boolean[m]; for(int i=0; i<prince.length; i++) { prince[i] = true; } int countNum = 0; int index = 0; int leftCount = prince.length; while(leftCount > 1) { if(prince[index]) { countNum ++; if(countNum == n) { prince[index] = false; leftCount --; countNum = 0; } } index ++; if(index == prince.length) { index = 0; } } int princeID = 0; for(int i=0; i<prince.length; i++) { if(prince[i]) { princeID = i+1; break; } } return princeID; } public static void main(String[] args) { int m,n; Scanner sc = new Scanner(System.in); m = sc.nextInt(); n = sc.nextInt(); int PriceId = selectPrince(m,n); System.out.println(PriceId); } }