求助uu们一道笔试真题

给你两个输入,6位数:val1和val2,例如100000 110000,请举出所有值(包括val1和val2)中,首先转换为ABCDEF的格式,分别表示十万位到个位,求出满足AB+CD=EF的个数,例如101121就是满足条件的值。我用的是Java实现。

如果输入为100000和110000,为什么答案是796(如果我没记错样例答案的话,总之远远大于90)呢?不应该是90吗?

大模型题解:

import java.util.*;

public class Main{
    public static void main(String[] args) {
        int val1 = 100000;
        int val2 = 110000;

        int count = countNumbers(val1, val2);
        System.out.println("满足 AB + CD = EF 的数字个数: " + count);
    }

    public static int countNumbers(int val1, int val2) {
        int count = 0;

        for (int i = val1; i <= val2; i++) {
            if (isValid(i)) {
                count++;
            }
        }

        return count;
    }

    public static boolean isValid(int num) {
        String numStr = String.valueOf(num);
    
        int ab = Integer.parseInt(numStr.substring(0, 2));
        int cd = Integer.parseInt(numStr.substring(2, 4));
        int ef = Integer.parseInt(numStr.substring(4, 6));
    
        return ab + cd == ef; // 判断是否满足条件
    }
}

全部评论
没看懂
点赞 回复 分享
发布于 03-24 23:49 陕西

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务