如何为此编写递归过程? N是整数,C <10。一个过程必须返回数字C在N
中出现的次数答案 0 :(得分:4)
我不会给你完整的答案,但我会帮你定位。
要编写递归函数,您需要考虑两个部分。
基本情况 - 您可以处理的最简单的案例是什么?对于这个问题,可能是 N 是1位数时。
递归案例 - 假设您可以处理N位数字。如何使用1位数功能和N位功能解决N + 1位数字?答案是,削掉一位数。将该数字输入1位数检查器,将其他N位数输入N位数检查器。 (&#34; N位数检查器&#34;是您正在写的功能。)
在伪代码中,递归函数的结构通常如下:
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
函数,它结合了基本案例和递归答案。(这些函数都不需要是实际的单独函数。它们可以内联。)