这是一个算法,请各位看看错的为什么错了,小弟感激不尽!正确的:publicclassCount3Quit{publicstaticvoidmain(String[]args){boolean[]arr=newboolean[500];for(inti=0;i
这是一个算法,请各位看看错的为什么错了,小弟感激不尽!
正确的:
public class Count3Quit {
public static void main(String[] args) {
boolean[] arr = new boolean[500];
for(int i=0; i
arr[i] = true;
}
int leftCount = arr.length;
int countNum = 0;
int index = 0;
while(leftCount > 1) {
if(arr[index] == true) {
countNum ++;
if(countNum == 3) {
countNum = 0;
arr[index] = false;
leftCount --;
}
}
index ++;
if(index == arr.length) {
index = 0;
}
}
for(int i=0; i
if(arr[i] == true) {
System.out.println(i);
}
}
}
}
错误的:
public class MyCount3Quit {
public static void main(String[] args) {
boolean[] array = new boolean[3]; //创建Boolean类型的数组array,长度为500;
for(int i = 0; i
array[i] = true;
//System.out.println(array[i]);
}
int length = array.length; //定义length的长度等于array的长度;
int index =0;
int count =0; //定义下标值index,和用于数数的Count;
while(length>1) { //当length的长度大于1时执行while语句
if(array[index] == true) {
count++; //每次循环过来Count的值加一;
if(count==3) { //如果下标在逻辑上等于3了,
array[index] = false; //array[index]的值改为FALSE;
count = 0; //count归零;
length--; //数到3一次,数组长度就减一;
}
}
if(index==array.length) { //当下标值等于和数组的长度减一相等了,下标值从零开始
index = 0;
}
index++; //每循环一次,代表数组下标的index的值加一;
}
for(int i = 0; i < array.length; i++) { //用for语句打印出array[i]为TRUE的数字;
if(array[i] == true) {
System.out.println(i);
}
}
}
}
展开