Java-使用整数

时间:2016-11-03 11:02:36

标签: java

编写一个名为digitsInARow的静态方法,该方法将整数n作为参数,并返回n的基数为10的表示形式的最大位数。对于许多数字,答案将是1,因为它们没有匹配的相邻数字。但对于像3555585这样的数字,答案是4,因为有4个出现的数字5出现在一行中。您不能使用String来解决此问题。您可以假设传递给方法的值大于或等于0.

public static int digitsInARow(int n) {
    if (n / 10 == 0) {
        return 1;
    }
    int count = 0;
    int count1 = 0;

    while (n > 0) {
        int digit = n % 10;
        int a = n / 10;
        if (digit == a % 10) {
            count++;
        } else {
            count1 = Math.max(count1, count);
            count = 0;
        }        
        n = n / 10;
    }
    return Math.max(count, count1);
}

我知道if语句搞砸了。我试图找出一种比较连续数字的方法,不使用Integer类或String类。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您的代码存在的问题是count会跟踪当前计数,而不是最高计数。您还需要添加一个跟踪最高计数的变量,并在每次处理数字时更新它,重置count之前将其更新为零。

退出循环时不要忘记更新最高计数,以防当前count大于之前找到的max