当前位置: 首页 > 知识库问答 >
问题:

如何使用递归查找相同的数字序列?——JAVA

华知
2023-03-14

我有一个任务,从用户那里得到一个数字输入,例如:“57779227”,我需要返回相同数字的最长序列。在本例中,最长的序列是“777”,返回值应该是3(因为数字“7”在一行中的倍数)。

到目前为止,我写了一个迭代方法***此方法中不使用循环,只使用递归***

迭代示例

public static int maxSequence(int num) {
        int max = 1;                        //initiate
        int currentCount = 1;
        int prevDigit = 11;//Because num%10 != 11 Always!
        int currentDigit;
        
        while (num!=0) {
            currentDigit = num%10;
            if (prevDigit == currentDigit)
                currentCount++;
            else if (currentCount > max)
                max = currentCount;
            
            if (prevDigit != currentDigit) //initiate for the next Iteration
                currentCount = 1;
            prevDigit = currentDigit;
            num = num/10;
        }
        return max;
    }

共有1个答案

支嘉祥
2023-03-14

当上一个数字出现时!=currentDigit然后将开始新的计数

public static int maxSequence(int num) {
        int previousMax = 1;
        int currentMax = 1;
        int previousDigit = num % 10;
        num /= 10;
        
        while (num != 0) {
            int currentDigit = num % 10;
            if (previousDigit == currentDigit) {
                currentMax++;
            } else {
                if (previousMax < currentMax) {
                    previousMax = currentMax;
                }
                currentMax = 1;
                previousDigit = currentDigit;
            }
            num /= 10;
        }
        
        return Math.max(currentMax, previousMax);
    }
 类似资料:
  • 本文向大家介绍C#程序使用递归查找数字的数字总和,包括了C#程序使用递归查找数字的数字总和的使用技巧和注意事项,需要的朋友参考一下 假设我们已经设置了可以找到数字总和的数字- 以下将通过输入数字并递归检查来找到数字总和- 示例 以下是我们的代码,用于在C#中使用递归来查找数字的总和。 输出结果

  • 问题内容: 我正在尝试使用正则表达式来匹配字符串中相同字符的一个或多个实例的序列。 范例: 我能给我一些提示吗? 问题答案: 您可以使用和正则表达式: 关键部分在外部捕获组-中。在这里,我们捕获一个字符,然后通过组号引用该字符:。组号为2,因为我们有一个外部捕获组,其号为1,表示0次或多次。 您也可以通过一个捕获组和解决它:

  • 我需要编写一个递归方法,将int作为输入,并以int(而不是字符串)的形式返回其中最长的相同数字序列。计数序列并不是最难的部分,但当给定一个包含几个序列的数字时,我不知道如何返回正确的值,而不计算所有的序列,而只计算最长的序列。目前,我编写了一段只计算序列长度的代码: 我真的很难完成剩下的事情。

  • 我需要实现一个递归方法printDigits,它将一个整数num作为参数,并以相反的顺序打印它的数字,每行一个数字。 这是我到目前为止所拥有的: 我觉得我只缺少一行代码,但不确定我需要做什么来修复它。

  • 本文向大家介绍使用递归查找数字是否为素数的Python程序,包括了使用递归查找数字是否为素数的Python程序的使用技巧和注意事项,需要的朋友参考一下 当需要使用递归技术查找数字是否为质数时,将定义一个方法,并使用“ while”条件。 递归计算较大问题的小位的输出,并将这些位组合以给出较大问题的解决方案。 示例 以下是相同的演示- 输出结果 解释 定义了一个名为“ check_prime”的方法

  • 问题内容: 这是一个像这样的时间序列数据,称为df: 我想获取连续“值”为1的日期范围,因此如何获得最终结果,如下所示: 问题答案: 这应该做 每当Value更改时,value_grp将增加1。在下面,您可以提取分组结果