如何将数字分成三个连续的部分,使第三部分是另外两个的总和?

我正在尝试编写一个 python 程序来确定一个数字的数字是否可以分成三个连续的部分,这样第三部分是另外两个的总和。例如,9999198 可以被整除,因为 99 + 99 = 198。总和将始终是最低有效数字。我无法提供方法请帮助。

我正在尝试将其实现为将数字视为单个数字,如上述情况下的 7。然后尝试创建三个数字的所有子集,这些数字相加为 7,然后使用这些子集找到正确的数字。就像 7 = 2,2,3 所以我的答案是 99,99,198。

我的问题是我们如何有效地将这些数字分成 3 个数字的子集。


慕桂英546537
浏览 193回答 1
1回答

慕侠2389804

这是我的解决方案,它检查将给定数字分成 3 部分的所有可能组合,并检查前两个分量的总和是否等于第三个分量。def correct_number(x):    str_nmbr = str(x)    for result_split in range(len(str_nmbr)-2):        part_3 = int(str_nmbr[-result_split-1:])        for components_split in range(len(str_nmbr)-2-result_split):            part_2 = int(str_nmbr[1+components_split: -result_split-1])            part_1 = int(str_nmbr[:components_split+1])            if part_1 + part_2 == part_3:                return True    return Falseprint(correct_number(9999198)) # True正如作者所要求的,这里给出了如何确定数字部分的视觉解释,给定数字“1234567”1 2 3 4 5 6 7:第一个循环选择第二个分隔符1 2 3 4 5 6|7第二个循环选择第一个1 2|3 4 5 6|71 2 3|4 5 6|71 2 3 4|5 6|71 2 3 4 5|6|7. . . 然后我们将第二个第二个分隔符向后移动 1 步1 2 3 4 5|6 7我们继续移动第一个分隔符1|2 3 4 5|6 71 2|3 4 5|6 71 2 3|4 5|6 7. . .
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python