You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码判断拼接数字能否被10整除,部分测试用例不通过求排查

问题分析与代码错误点

核心逻辑错误

判断拼接后的数字能否被10整除,本质只需要看拼接后数字的最后一位是否为0。而拼接后数字的最后一位,就是原数组最后一个元素的最后一位(按数组顺序拼接时,最后一个元素的末尾就是整个数的末尾)。原代码完全绕了弯路,没必要计算整个拼接数的大小。

精度问题

代码中使用double类型存储拼接后的数值,当数组长度N较大时,Math.pow(10,j)的结果会超出double的精确整数范围(double仅能精确表示2^53以内的整数),导致计算出的ans值出现精度丢失,最终ans % 10的结果错误。

冗余代码

变量ans1被定义但从未使用,属于无效代码。

修正思路

直接检查数组最后一个元素的最后一位是否为0即可,无需计算整个拼接数,还能节省内存空间:

import java.util.Scanner;

class TestClass {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int N = s.nextInt();
        int lastElement = 0;
        // 无需存储整个数组,只保留最后一个输入的元素
        for (int i = 0; i < N; i++) {
            lastElement = s.nextInt();
        }
        System.out.println(lastElement % 10 == 0 ? "Yes" : "No");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:30:09