Java 实现平衡数检测:左右数字和相等判断


发布日期 : 2020-11-25 23:42:38 UTC

访问量: 10 次浏览

平衡数 Java

在数学中,一个整数被称为平衡数(balanced number),如果将该数从中间分为两个部分,左半部分各位数字之和等于右半部分各位数字之和。比如,数字 123123 分成 123123 两部分,左边各位数字和 1+2+3=6 等于右边各位数字和 1+2+3=6,因此它是一个平衡数。今天,我们将讨论如何使用 Java 来判断一个整数是否为平衡数。

判断一个数是否为平衡数

为了判断一个整数是否为平衡数,我们可以按照以下步骤进行操作:

  1. 首先,我们需要将这个整数转换为字符串,以便于后续的操作。
  2. 然后,我们计算这个整数的长度,判断该长度是否为偶数。如果长度为奇数,则该整数一定不是平衡数,因为无法分成两部分。
  3. 接下来,我们计算左半部分和右半部分的和,如果它们的和相等,则该整数为平衡数,否则不是平衡数。

下面是通过Java代码实现上述逻辑:

public class BalancedNumber {

    public static boolean isBalancedNumber(int num) {
        String strNum = String.valueOf(num);
        int len = strNum.length();

        // 长度为奇数,直接返回false
        if (len % 2 != 0) {
            return false;
        }

        int leftSum = 0;
        int rightSum = 0;

        // 计算左半部分和右半部分的和
        for (int i = 0; i < len / 2; i++) {
            leftSum += Character.getNumericValue(strNum.charAt(i));
            rightSum += Character.getNumericValue(strNum.charAt(i + len / 2));
        }

        return leftSum == rightSum;
    }

    public static void main(String[] args) {
        int num1 = 123123;
        int num2 = 123454;

        System.out.println(num1 + " is balanced number: " + isBalancedNumber(num1));
        System.out.println(num2 + " is balanced number: " + isBalancedNumber(num2));
    }
}

在上面的代码中,我们定义了一个 isBalancedNumber 方法用来判断一个整数是否为平衡数。然后在 main 方法中我们分别对数字 123123123454 进行判断,并输出。

运行结果

123123 is balanced number: true
123454 is balanced number: false

从运行结果可以看出,123123 是一个平衡数(左半部分 123 的各位数字和 1+2+3=6,右半部分 123 的各位数字和 1+2+3=6,二者相等),而 123454 不是一个平衡数(左半部分 1+2+3=6,右半部分 4+5+4=13,不相等)。

总结

通过本文我们了解了什么是平衡数以及如何使用Java来判断一个整数是否为平衡数。