【问题标题】:How do i find the highest digit in a multi-digit number?如何找到多位数字中的最高位?
【发布时间】:2014-12-31 14:15:58
【问题描述】:

好的,所以我有一个练习要做,我需要找到一个数字中的最高位和最低位并将它们加在一起。所以我有一个数字 n,它是 5368,代码需要找到最高位 (8) 和最低的 (3) 数字并将它们加在一起 ​​(11)。我该怎么做?我尝试过这样的事情:

public class Class {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int n1 = 5;
        int n2 = 3;
        int n3 = 6;
        int n4 = 8;
        int max = Math.max(n2 ,n4);
        int min = Math.min(n2, n4);
        int sum = max + min;

        System.out.println(sum);
    }

}

哪种方法可行,但我在这里有一个 4 位数字,并且使用 Math.max/min 我只能使用 2 个参数。我该怎么做?提前致谢。

【问题讨论】:

  • 一种解决方案:使用String.valueOf(int) 将您的号码转换为String,获取其char[],对其进行排序,获取第一个和最后一个索引。要提取每个字符的值,只需使用c - '0'。就是这样!

标签: java numbers digit highest


【解决方案1】:

我假设意图是从n = 5368 开始,所以你需要一个循环来提取每个单独的数字并将其与当前的最小值/最大值进行比较

int n = 5368;
int result = 0;

if (n > 0) {
    int min = Integer.MAX_VALUE;
    int max = Integer.MIN_VALUE;

    while (n > 0) {
        int digit = n % 10;

        max = Math.max(max, digit);
        min = Math.min(min, digit);

        n /= 10;
    }

    result = min + max;
}

System.out.println(result);

【讨论】:

    猜你喜欢
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2016-11-29
    • 2010-09-08
    相关资源
    最近更新 更多