繁体   English   中英

比较两个数字的数字并求和时发出

[英]Issue while compare and sum digits of two numbers

所以,问题是我有两行,每行有两个数字。 在每一行上,数字由空格分隔。 我想做的是比较线上哪个数字更大,并对更大数字的数字求和。

例子

1000 2000
2000 1000

在这种情况下,output 应该是

2
2

因为在第一行右边的数字更大,它的数字之和是 2。第二行是相反的。

到目前为止我所拥有的是这个

    int sum = 0;

    for (int i = 0; i <= 2; i++) {
        String numbers = scanner.nextLine();

        String[] parts = numbers.split(" ");
        double leftNumber = Double.parseDouble(parts[0]);
        double rightNumber = Double.parseDouble(parts[1]);

        if ( leftNumber > rightNumber ) {
            while (leftNumber > 0) {
                sum = (int) (sum + leftNumber % 10);
                leftNumber = leftNumber / 10;
            }
        } else {
            while (rightNumber > 0) {
                sum = (int) (sum + rightNumber % 10);
                rightNumber = rightNumber / 10;
            }
        }
        System.out.println(sum);
    }

我得到的结果是

2
4

它将第二行结果添加到第一行。 我怎样才能避免这种情况?

为什么不让事情变得更简单,而只是将整数视为字符串以求和数字呢?

    while (scanner.hasNext()) {
        int larger = Math.max(scanner.nextInt(), scanner.nextInt());
        String sLarger = String.valueOf(larger);
        int digitsSum = 0;
        for (int i = 0; i < sLarger.length(); i++) {
            digitsSum += sLarger.charAt(i) - '0';
        }
        System.out.printf("Larger number %s sums to %d%n", sLarger, digitsSum);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM