import java.util.Scanner;
public class Fiftheen {
	/*有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。*/
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		System.out.print("请输入围圈的人数:");	
		int a=input.nextInt();
		System.out.println(" ");
		int[] b=new int[a];
		int i,j,k=0,m=0,n=0;
		for(i=1;i<a;i++)
			b[i]=i;
		while(a!=1){
			if(k>0){
				if(n==1){
					b[1]=99099;
					m=2;
				}
				else if(n==2){
					b[0]=99099;
					m=1;
				}
				else
					m=0;
				}
			n=0;
			for(i=m;i<a;i++){
				n++;
				if(n==3){
					n=0;
					b[i]=99099;
				}
			}
			for(i=0;i<a;i++)
				if(b[i]==99099){
					for(j=i;j<a-1;j++)
						b[j]=b[j+1];
					a--;
					i--;
				}
			k++;
		}
		System.out.println("最后留下的为原来的"+(b[0]+1)+"号。");
	}
	
}
原文:http://www.cnblogs.com/yjh123/p/6352228.html