写一个递归过程,返回数字N在数字N中出现的次数?

时间:2016-11-07 19:28:40

标签: python python-3.x

如何为此编写递归过程? N是整数,C <10。一个过程必须返回数字C在N

中出现的次数

1 个答案:

答案 0 :(得分:4)

我不会给你完整的答案,但我会帮你定位。

要编写递归函数,您需要考虑两个部分。

  1. 基本情况 - 您可以处理的最简单的案例是什么?对于这个问题,可能是 N 是1位数时。

  2. 递归案例 - 假设您可以处理N位数字。如何使用1位数功能和N位功能解决N + 1位数字?答案是,削掉一位数。将该数字输入1位数检查器,将其他N位数输入N位数检查器。 (&#34; N位数检查器&#34;是您正在写的功能。)

  3. 在伪代码中,递归函数的结构通常如下:

    def recursive_function(n):
        if is_base_case:
            return base_case(n)
        else:
            return combine(
                recursive_function(smaller(n)),
                base_case(bite_sized_chunk(n))
            )
    

    你的工作是填写:

    • is_base_case测试:n一位数?
    • base_case功能,仅处理1位数字。
    • smaller函数,它为您提供n的最后一位数字。如果n为1234,则smaller(n)为123。
    • bite_sized_chunk函数,它为您提供n的最后一位数字。如果n为1234,则bite_sized_chunk为4。
    • combine函数,它结合了基本案例和递归答案。

    (这些函数都不需要是实际的单独函数。它们可以内联。)