东南北面猜一地名:用java编程,有追加分!急急急!!!!!谢谢了

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 22:14:23
有17个人围成一圈(编号),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再继续数下去,直到最后只剩下一个人为止.问此人原来的位置是多少号?
能不能在源程序上加点注释,有些东西我不太明白!

public class TestClass {

/**
* @param args
*/
public static void main(String[] args) {
int p[] = new int[17];
int count = 0;
int index = 0;
int k = -1;
while(count <= 17)
{
k++;
if(k>=17) k=0;
if(p[k]> 0)
{
continue;
}
index++;
if(index == 3)
{
System.out.print(k+",");
count++;
p[k] = count;
if(k>=17)k=0;
index = 0;
}
}
}
}

按照离开的顺序输出原来的编号(0开始)
最后一个是10