You need to enable JavaScript to run this app. Java实现数组元素访问与整除判断:查找可被13、31整除的最大整数
优惠活动
大模型
产品
解决方案
定价
更多

Java实现数组元素访问与整除判断:查找可被13、31整除的最大整数

原有代码的现存问题
  • 变量作用域错误:tempArray 是if判断块内部的局部变量,在块外的遍历循环中直接引用会触发编译报错
  • 遍历逻辑硬编码:循环条件固定写为 x <=5 匹配数组长度,一旦后续数组长度调整,极易触发 ArrayIndexOutOfBoundsException 越界异常
  • 核心功能缺失:未实现两类要求的操作,既没有完成数组元素除以指定值的处理逻辑,也没有编写查找可被13、31整除的最大整数的匹配逻辑
需求实现逻辑拆解

1. 数组元素访问与除以指定值操作

  • 统一数组作用域,将数组定义在主方法可直接访问的范围,消除编译错误
  • 遍历数组时直接读取每个元素,按预先定义的指定除数做整数除法:Java中int类型的除法会自动舍去小数部分,输出结果天然为整数,符合要求
  • 指定除数可定义为全局常量,后续调整使用时无需修改遍历逻辑内部代码

2. 可被13、31整除的最大整数查找

  • 预先定义两个整型变量,分别存储可被13整除的最大值、可被31整除的最大值,初始值设为 Integer.MIN_VALUE,避免固定初始值干扰比较结果
  • 遍历数组时同步完成匹配判断:
    • 若元素对13取模结果为0,就和当前存储的13类最大值做比较,数值更大则更新存储值
    • 若元素对31取模结果为0,同理和当前存储的31类最大值做比较,更新匹配到的更大值
  • 遍历完成后输出两个结果值,过程中所有运算均为整型,完全满足整数输出的要求;若数组无匹配元素,补充对应提示避免输出无意义的极值
修正后可直接运行的完整代码
public class Question03 {
    // 全局数组
    public static int[] array;
    // 自定义指定的除数,可根据实际需求调整数值
    private static final int DIVISOR = 2;
    // 存储匹配到的可被13、31整除的最大值
    private static int maxDivisibleBy13;
    private static int maxDivisibleBy31;

    public static void main(String[] args) {
        // 无命令行参数时使用题目提供的测试数组
        if (args == null || args.length == 0) {
            array = new int[]{39, 93, 26, 62, 13, 31};
        } else {
            // 支持从命令行参数初始化数组,扩展使用场景
            array = new int[args.length];
            for (int i = 0; i < args.length; i++) {
                array[i] = Integer.parseInt(args[i]);
            }
        }

        // 初始化最大值为整型最小值,避免初始值干扰比较
        maxDivisibleBy13 = Integer.MIN_VALUE;
        maxDivisibleBy31 = Integer.MIN_VALUE;

        System.out.println("=== 数组元素除以指定值(除数:" + DIVISOR + ")的结果 ===");
        // 增强for循环遍历,避免数组越界
        for (int element : array) {
            // 整数除法,自动舍去小数部分
            int divideResult = element / DIVISOR;
            System.out.println("原元素值:" + element + ",除以" + DIVISOR + "后结果:" + divideResult);

            // 匹配可被13整除的元素,更新最大值
            if (element % 13 == 0) {
                if (element > maxDivisibleBy13) {
                    maxDivisibleBy13 = element;
                }
            }
            // 匹配可被31整除的元素,更新最大值
            if (element % 31 == 0) {
                if (element > maxDivisibleBy31) {
                    maxDivisibleBy31 = element;
                }
            }
        }

        System.out.println("\n=== 匹配结果 ===");
        // 对无匹配元素的场景做友好提示
        if (maxDivisibleBy13 != Integer.MIN_VALUE) {
            System.out.println("数组中可被13整除的最大整数:" + maxDivisibleBy13);
        } else {
            System.out.println("数组中不存在可被13整除的整数");
        }
        if (maxDivisibleBy31 != Integer.MIN_VALUE) {
            System.out.println("数组中可被31整除的最大整数:" + maxDivisibleBy31);
        } else {
            System.out.println("数组中不存在可被31整除的整数");
        }
    }
}

使用测试数组{39, 93, 26, 62, 13, 31}的运行输出示例:
=== 数组元素除以指定值(除数:2)的结果 ===
原元素值:39,除以2后结果:19
原元素值:93,除以2后结果:46
原元素值:26,除以2后结果:13
原元素值:62,除以2后结果:31
原元素值:13,除以2后结果:6
原元素值:31,除以2后结果:15

=== 匹配结果 ===
数组中可被13整除的最大整数:39
数组中可被31整除的最大整数:62


内容的提问来源于stack exchange,提问作者leastbasket590

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 23:45:03