java - 检查数组是否为 Is235
问题描述
我想检查一个数组是否为 Is235。Is235 是一个数组,其中包含一个可被 2 整除的整数、另一个可被 3 整除的整数和第三个可被 5 整除的整数。数组中的其他整数在添加到整数时不能被 2、3 或 5 整除可被 2、3 和 5 整除应该等于数组中元素的总数。如果数组 Is235,则返回 1,否则返回 0。请注意,数组不能包含负整数或零。我只想以蛮力的方式解决这个问题,提前感谢您的帮助。我的错误尝试-
public class Array {
public static void main(String[] args) {
int[] arr = {2, 3, 5, 7, 11};
System.out.println(is235Array(arr));
}
public static int is235Array(int[] a) {
int n = a.length;
int countOne = 0;
int countTwo = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] / 2 == 0 || a[i] / 3 == 0 || a[i] / 5 == 0) {
countOne++;
}
}
for (int j = 0; j < a.length; j++) {
if (a[j] / 2 != 0 || a[j] / 3 != 0 || a[j] / 5 != 0) {
countTwo++;
}
}
if (countOne + countTwo != n) {
return 0;
}
return 1;
}
}
我的 countOne 和 countTwo 变量不能像我教的那样计算整数。
解决方案
试试这个,我测试了它并且它有效,你应该使用余数运算符%
:
public class Array {
public static void main(String[] args) {
int[] arr = {2, 3, 5, 7, 11};
System.out.println(is235Array(arr));
}
public static int is235Array(int[] a) {
int countOne = 0;
int countTwo = 0;
for (int i : a) {
if (i % 2 == 0 || i % 3 == 0 || i % 5 == 0) {
countOne++;
}else{countTwo++;}
}
if (countOne + countTwo != a.length) {
return 0;
}else{return 1;}
}
}
推荐阅读
- python - 一个函数,它接受一个字符串列表——每个元素都是一本书。此函数的输出是一个 2D NumPy 书籍计数数组
- c++ - 如何处理 unique_ptr?
- rust - 如何使用活塞创建全屏窗口?
- java - Java-是否有类似于 hasNextInt() 或 hasNextDouble() 的方法用于字符串?我想检查用户输入是否只是文本而不是数字
- html - Spring MVC 表单输入类型日期值始终为空
- angular - 移除所有非选中项的 iOS 附件类型
- python - 当我没有使用 screen.fill(color) 时,Pygame 文本重叠,为什么?
- php - 如何使另一个文件的变量出现在所需文件的 heredocs 中?
- c++ - 为什么当我期望 126 并且它给出 254 时,ReadFile 给出错误的值?
- javascript - 通过四舍五入寻找不确定性