python - Python:拆分数字并将它们分解为 2
问题描述
此代码用于识别第 4 次因数为 2 的数字是否为 1。
a = int(input())
terms = 4
result = list(map(lambda x: a ** x, range(terms)))
for i in range(terms):
print(a, "^2 = ", result[i])
if result == 1:
print('True')
else:
print('False')
如果我输入 14,结果如下:
14 ^2 = 1
14 ^2 = 14
14 ^2 = 196
14 ^2 = 2744
False
但我希望它是这样的。
1^2 + 4^2 = 17
1^2 + 7^2 = 50
5^2 + 0^2 = 25
2^2 + 5^2 = 29
False
解决方案
尝试这个:
a = str(int(input()))
def split_and_print(a):
x = [int(y) for y in list(str(a))]
return sum([y**2 for y in x])
def split_sum_print(a):
a_split = list(str(a))
print(' + '.join([x+'^2' for x in a])+ ' = '+str(split_and_print(a)))
return str(split_and_print(a))
n = 4
for i in range(n):
a = split_sum_print(a)
if a == '1':
print(True)
else:
print(False)
输出:
14
1^2 + 4^2 = 17
1^2 + 7^2 = 50
5^2 + 0^2 = 25
2^2 + 5^2 = 29
False
我做了两个函数,一个负责计算,另一个负责打印。然后将它们组合并使用for
循环。改变n
不同的迭代次数。
推荐阅读
- c# - 如何为 EqualityComparer 使用自定义比较器
。默认? - vb.net - 带有 ServerNetworkProtocol 的 WMI 不起作用 vb.net
- r - 如何从 CSV 文件中获取特定参数的值到 R 代码
- c# - 创建带有特殊字符的共享文件夹
- rx-java - 如何使用过期时间缓存 Single
- vb.net - .NET 三元运算符和类型转换的问题
- javascript - 从回调函数返回一个值
- angular - 在显示 toast 消息之前,如何确保我的所有 observables 都已完成?
- python - Pandas:将 Dataframe 上三角转换为下三角,反之亦然
- c# - Nest 5.6 - 如何插入已存在 id 的文档?