public class Count3Quit3 {
public static void main(String[] args) {
//用数组模拟链表
//初始化
int[] a = new int[500];
for(int i=0; i<a.length - 1; i++) {
a[i] = i+1;
}
a[a.length - 1] = 0;
//从这里解释
int leftCount = a.length;
int lastIndex = a.length-1, index = 0;
int num = 0; while(leftCount > 1) {
num ++;
if(num == 3) {
num = 0;
leftCount --;
a[lastIndex] = a[index];
}
lastIndex = index;
index = a[index];
}
for(int i=0; i<a.length; i++) {
//System.out.println("a[" + i + "]:" + a[i]);
if(a[i] == i) {
System.out.println(a[i]);
}
}
}
}
望好心人解答,就是主循环的意思,还有两个变量什么意思。
public static void main(String[] args) {
//用数组模拟链表
//初始化
int[] a = new int[500];
for(int i=0; i<a.length - 1; i++) {
a[i] = i+1;
}
a[a.length - 1] = 0;
//从这里解释
int leftCount = a.length;
int lastIndex = a.length-1, index = 0;
int num = 0; while(leftCount > 1) {
num ++;
if(num == 3) {
num = 0;
leftCount --;
a[lastIndex] = a[index];
}
lastIndex = index;
index = a[index];
}
for(int i=0; i<a.length; i++) {
//System.out.println("a[" + i + "]:" + a[i]);
if(a[i] == i) {
System.out.println(a[i]);
}
}
}
}
望好心人解答,就是主循环的意思,还有两个变量什么意思。
//一共有多少包盐
int leftCount = a.length;
//最后那包盐
int lastIndex = a.length-1,
//第一包盐
index = 0;
//仅仅是奸商拿来计算的计数器
int num = 0;//如果还有盐
while(leftCount > 1) {//涨一块钱
num ++;
//涨到三块的时候
if(num == 3) {
//重置计数器
num = 0;
//卖掉一包盐
leftCount --;
//把第一包盐放到最后那包盐的位置
a[lastIndex] = a[index];
}
//告诉别人卖掉一包盐了(最后那包)
lastIndex = index;
//把第一包盐的位置挪到第二包盐上 因为index从0开始,它的价格是i(i从零开始)+1就是
// 第一次a[index]就是1 以此类推 index 就会一直往前增加1块钱
index = a[index];
}//物价局和工商局干涉之后,要求奸商把钱拿出来查账!
for(int i=0; i<a.length; i++) {
//System.out.println("a[" + i + "]:" + a[i]);
if(a[i] == i) {
System.out.println(a[i]);
}