用两个变量把所有的可能性加起来

2024-05-19 16:11:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python编写一个程序,接受用户的输入并检查它是否是Kaprekar数。 我还是一个初学者,一直有很多问题,但我现在的主要问题,我似乎无法解决的是,我如何将所有的可能性加在一个列表中,只有两个变量。我可能解释得不太清楚,所以举个例子:

我有一个包含数字的列表 ['2', '0', '2', '5']。 我如何让python执行2 + 02520 + 25202 + 5?你知道吗

它将在if-else语句中,一旦它等于用户输入的数字,它就会停止。你知道吗

Here是整个代码的样子,如果它有帮助的话-如果它现在说的是if 1 == 0:,它应该把它们加起来。)


Tags: 代码用户程序列表ifhere数字语句
2条回答

不是直接回答你的问题,但你可以写一个表达式来确定一个数N是否是一个更简洁的Krapekar数。你知道吗

>>> N=45
>>> digits=str(N**2)
>>> Krapekar=any([N==int(digits[:_])+int(digits[_:]) for _ in range(1,len(digits))])
>>> Krapekar
True

假设你从

a = ['2', '0', '2', '5']

那你就可以跑了

>>>  [(a[: i], a[i: ]) for i in range(1, len(a))]
[(['2'], ['0', '2', '5']), (['2', '0'], ['2', '5']), (['2', '0', '2'], ['5'])]

以获得所有可能的连续分裂。你知道吗

如果您想进一步处理它,可以通过将其更改为数字

>>> [(int(''.join(a[: i])), int(''.join(a[i: ]))) for i in range(1, len(a))]
[(2, 25), (20, 25), (202, 5)]

或者把它们加起来

>>> [int(''.join(a[: i])) + int(''.join(a[i: ])) for i in range(1, len(a))]
[27, 45, 207]

相关问题 更多 >