public class Count3Quit2 {
public static void main(String args[]) {
int a[];
a = new int[500];
for(int i = 0; i < 500; i++) {
a[i] = i + 1;
}
a[499] = 0;
int num = 500;
int countNum = 0;
int i = 0, j = 0;
while(num > 1) {
countNum ++;
if(countNum == 3) {
a[j] = a[i];
countNum = 0;
num--;
}
if(countNum != 3) {
j = i;
}
i = a[i];
}
System.out.println(a[i]+1);
}
数三退一问题,用数组模拟链表实现的,while循环里的看不太懂,主要是i,j不知道是干吗的,请高手指教,如果有更好的方法请写出来,谢谢!!!
public static void main(String args[]) {
int a[];
a = new int[500];
for(int i = 0; i < 500; i++) {
a[i] = i + 1;
}
a[499] = 0;
int num = 500;
int countNum = 0;
int i = 0, j = 0;
while(num > 1) {
countNum ++;
if(countNum == 3) {
a[j] = a[i];
countNum = 0;
num--;
}
if(countNum != 3) {
j = i;
}
i = a[i];
}
System.out.println(a[i]+1);
}
数三退一问题,用数组模拟链表实现的,while循环里的看不太懂,主要是i,j不知道是干吗的,请高手指教,如果有更好的方法请写出来,谢谢!!!
public class Count3Quit2 {
public static void main(String args[]) {
int a[];
a = new int[500];
for(int i = 0; i < 500; i++) {
a[i] = i + 1;
}
a[499] = 0;
//int countNum = 0;
int i = 0, j = 0;
for(int countNum =1;countNum <=500;countNum ++) {
if(countNum %3 ==0) {
a[j] = a[i];
}else{
j = i;
}
i = a[i];
}
System.out.println(a[i]+1);
}