Java 100 个储物柜中不包括 100 个
Java not inclusive of 100 in 100 Lockers
我想要的输出是 locker 1,4,9,16,36,49,81 AND 100。
我正在反复尝试在发送学生后找到哪些储物柜,并打开每个储物柜。 (默认情况下全部关闭)并打开每个储物柜。然后 2 号学生去每个其他储物柜,如果它是打开的,则将其关闭,如果它是关闭的,则将其打开。三号学生做同样的事情,但每三个储物柜。一直到学生 100。我知道输出应该是所有平方数,但我无法显示 100。我错过了什么?我在我的两个迭代中都放了一个 <= 但它不起作用。它抛出 IndexOutOfRangeException。我该怎么办?
import java.util.Arrays;
public class runLocker {
final static int numberOfLockers = 100;
final static int numberOfStudents = 100;
public static void main(String[] args) {
// TODO Auto-generated method stub
int LockersToCloseBy = 1;
boolean[] totalLockersArray = new boolean[numberOfLockers];
for(int i = 0; i < totalLockersArray.length - 1; i++){
totalLockersArray[i] = false;
}
for(int n= 0; n < totalLockersArray.length ; ++n){
for(int j = 0; j < totalLockersArray.length; j+=LockersToCloseBy){
if(totalLockersArray[j] == true)
{
totalLockersArray[j] = false;
}
else
{
totalLockersArray[j] = true;
}
}
LockersToCloseBy++;
}
for(int i = 0; i < numberOfLockers; i++){
if(totalLockersArray[i] == true){
System.out.println("Locker " + i + " is open");
}
}
//Currently outputs 1, 4, 9, 16, 36, 49, and 81...
//Need it to output 1,4,9,16,36,49,81,100
}
}
您的数组是为索引 [0,...,99] 定义的(总共 100 个元素,不包括 100 个)。
在下面的代码中:
for(int i = 0; i < numberOfLockers; i++){
if(totalLockersArray[i] == true){
System.out.println("Locker " + i + " is open");
}
}
100连候选人都不是。
一个简单的解决方法是将 lockers 数组设置为 101 (numberOfLockers=101),这样所有循环都将包括 100。
我想要的输出是 locker 1,4,9,16,36,49,81 AND 100。 我正在反复尝试在发送学生后找到哪些储物柜,并打开每个储物柜。 (默认情况下全部关闭)并打开每个储物柜。然后 2 号学生去每个其他储物柜,如果它是打开的,则将其关闭,如果它是关闭的,则将其打开。三号学生做同样的事情,但每三个储物柜。一直到学生 100。我知道输出应该是所有平方数,但我无法显示 100。我错过了什么?我在我的两个迭代中都放了一个 <= 但它不起作用。它抛出 IndexOutOfRangeException。我该怎么办?
import java.util.Arrays;
public class runLocker {
final static int numberOfLockers = 100;
final static int numberOfStudents = 100;
public static void main(String[] args) {
// TODO Auto-generated method stub
int LockersToCloseBy = 1;
boolean[] totalLockersArray = new boolean[numberOfLockers];
for(int i = 0; i < totalLockersArray.length - 1; i++){
totalLockersArray[i] = false;
}
for(int n= 0; n < totalLockersArray.length ; ++n){
for(int j = 0; j < totalLockersArray.length; j+=LockersToCloseBy){
if(totalLockersArray[j] == true)
{
totalLockersArray[j] = false;
}
else
{
totalLockersArray[j] = true;
}
}
LockersToCloseBy++;
}
for(int i = 0; i < numberOfLockers; i++){
if(totalLockersArray[i] == true){
System.out.println("Locker " + i + " is open");
}
}
//Currently outputs 1, 4, 9, 16, 36, 49, and 81...
//Need it to output 1,4,9,16,36,49,81,100
}
}
您的数组是为索引 [0,...,99] 定义的(总共 100 个元素,不包括 100 个)。
在下面的代码中:
for(int i = 0; i < numberOfLockers; i++){
if(totalLockersArray[i] == true){
System.out.println("Locker " + i + " is open");
}
}
100连候选人都不是。
一个简单的解决方法是将 lockers 数组设置为 101 (numberOfLockers=101),这样所有循环都将包括 100。