首页 > 解决方案 > 检查数组是否为 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 变量不能像我教的那样计算整数。

标签: javaarrays

解决方案


试试这个,我测试了它并且它有效,你应该使用余数运算符%

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;}

    }
}

推荐阅读