java - 邮箱程序 Java(翻转布尔值)
问题描述
我的任务是创建一个用户输入数字的程序,这将是邮箱的总数。所有邮箱都将从关闭位置开始(布尔值 true)。然后你将每隔一个邮箱翻转一次,然后是第三个,第四个,然后是第五个,依此类推,直到你到达最后一个邮箱,这是唯一一个被翻转的邮箱。然后您必须报告哪些邮箱仍然关闭。我还没有把封闭的盒子还给用户。因为我被困在如何让它通过阵列过滤。
scanner input = new Scanner(System.in);
System.out.println("This program will close and open mailboxes in a fixed pattern. How many mailboxes would you like to see?");
int numOfBoxes = input.nextInt();
boolean [] boxes = new boolean [numOfBoxes];
for(int i = 0; i <= numOfBoxes; i++){
for(int j = 2; j <= numOfBoxes; j++){
if(boxes.indexOf[i] % j == 0){
boxes[i] = !boxes[i];
}
}
}
解决方案
怎么样
for(int i=2; i<=numOfBoxes; ++i) {
for(int j=i-1; j<numOfBoxes; j+=i) {
boxes[j] = !boxes[j]
}
}
这样做是你想要的吗?
编辑
这是一个完整的工作示例:
public static void main(String[] args) {
int numOfBoxes = 5;
boolean [] boxes = new boolean [numOfBoxes];
for(int i = 2; i <= numOfBoxes; ++i){
for(int j = i-1; j < numOfBoxes; j+=i){
boxes[j] = !boxes[j];
}
}
System.out.println(Arrays.toString(boxes));
}
运行给我以下输出:
[false, true, true, false, true]
推荐阅读
- android - 在 Kotlin 应用程序中 - 读取失败,套接字可能关闭或超时?
- wpf - 按钮单击以调用运行同步哈希/运行空间以在 Powershell 中刷新 WPF Listview 的函数
- mysql - 使用 MySQL 和 Docker 的 Spring Boot:IllegalStateException:无法加载驱动程序类:com.mysql.cj.jdbc.Driver
- php - PHP - 特定的 if/or 语句
- getstream-io - 向 id 与当前用户不匹配的提要添加活动
- keras - 如何使用两个文本特征作为输入来构建 keras 分类模型
- vue.js - 如何更改vuesax中侧边栏的背景颜色并使其占据屏幕高度?
- java - 使用 SHA1withDSA 验证签名失败
- eiffel - 如何在 Eiffel 编程语言中交换值?
- python - 什么是 DT_VARIANT 张量?