dota2动态界面皮肤:JAVA高手帮帮忙,小弟自学的,有些地方不明白,求助啊

来源:百度文库 编辑:高校问答 时间:2024/05/11 05:59:05
本人自学java,初级菜鸟,刚学到数组,朋友叫我做一个数组的循环,说很简单,研究几小时,迷糊了,特来求教!!问题如下:
1-12的数字,围成一圈,从一开始数,每数到5,就删除这个数,然后从下一个继续数,一样到5删除,问,最后剩下的数字是什么.
希望java的前辈门帮帮忙啊,帮我把这个程序写出来,再给我加点注释,我慢慢研究一下,谢谢了!!

for (int i=0;i<12;i++)
if (a[i]!=0) //检测还剩下哪一个数没有被删除
System.out.println("The left number is : " +a[i]);

/*思路:1-12围成一圈,每数到5就删除这个数。可以定义一个计数器,每到5的倍数就删一数,当数到第55次,删掉11个数,剩下的那一个就是所求。*/
/*所谓删除,并不一定真的把这个数组成员从内存抹去,只要给它作上标记,比如说将其赋值为0就可以了*/

// 文件名为 Count5.java
public class Count5{
public static void main (String[] args){
int[] a=new int[12]; //定义a数组
for (int i=0;i<12;i++)
a[i]=i+1; //为a数组赋值1-12

int k=0; //定义计数器k,初始为0
while (k<55){ //计数器k计循环55次结束
for (int i=0;i<12;i++){
if (a[i]!=0) { //当a[i]!=0,说明a[i]没被删除
k++; //计数器k计数加1
System.out.print(a[i]+" "); //显示当前数到哪一个数
if (k%5==0){ //计数器k每计到5
System.out.println("\tDelete the number : "+a[i]);
a[i]=0; //删除a[i],即给它做上标记:赋值为0
}
}}
}

for (int i=0;i<12;i++)
if (a[i]!=0) //检测还剩下哪一个数没有被删除
System.out.println("The left number is : " +a[i]);
}
}