【发布时间】:2014-06-13 03:02:02
【问题描述】:
我正在解决一个递归问题,即计算一个数字中连续 8 的总数。例如:
input: 8801 output: 2
input: 801 output: 0
input: 888 output: 3
input: 88088018 output:4
我无法弄清楚将信息传递给下一个关于前一个数字是否为 8 的递归调用的逻辑。
我不想要代码,但我需要逻辑方面的帮助。对于迭代解决方案,我可以使用标志变量,但在递归中,我如何完成标志变量在迭代解决方案中所做的工作。此外,它不是任何任务的一部分。这就是我想到的,因为我正在尝试使用递归来练习编码。
【问题讨论】:
-
88088018中连续8的最大个数是2个,不是4个。
-
@j_random_hacker 考虑字典中的示例:
con·sec·u·tive: following continuously. e.g., "five consecutive months of serious decline."这似乎更符合 88088018 中的四个连续 8。不是吗? -
@גלעדברקן:我认为我完全同意的字典定义完全符合我的主张。 88088018 包含 4 个“连续”8 的唯一方法是我们不应该计算 0 位。
-
@j_random_hacker 不,总共是两个连续的 8 加上两个连续的 8。
-
@גלעדברקן:我错过了描述中的“total”这个词,再三考虑,这使您的解释合理。我仍然认为这是一个非常不清楚的问题描述,因为如果您谈论一些连续的事情,(我认为)普遍理解为意味着 整个集合 出现没有间隙。例如。如果你问某人在一个数据集中是否有“连续五个月严重下降”,其中 1 月、2 月、6 月、7 月和 8 月严重下降,而所有其他月份都没有,他们会说“不”。