首页 > 解决方案 > 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

标签: python

解决方案


尝试这个:

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不同的迭代次数。


推荐阅读