[英]how to write a function that recursively sum the digits
我需要一个 function 接受变量,然后计算这些变量(例如 x 和 yx y)并递归地找到剩下两个点的总和。 但是,function 需要打印所有的计算。 例如 Function 将打印这个,5 3 抱歉我的英语不好,祝你好运。
不是很漂亮,但能胜任
def f(x, y):
tmp = x**y
sum = 0
while tmp >= 1:
sum = sum + tmp % 10
tmp = (tmp // 10)
return sum
这可能会为你做。 也不是最漂亮的代码:
def func(x,y):
res1 = str(x**y)
to_print = "{0}^{1} = {2}".format(x,y,res1)
while len(res1) > 1:
to_print += " = " + res1[0]
res2 = int(res1[0])
for n in res1[1:]:
to_print += " + " + n
res2 += int(n)
to_print += " = " + str(res2)
res1 = str(res2)
print(to_print)
基本上我从x**y
的值创建了一个字符串,因此很容易迭代( res1 = str(x**y)
)。
to_print
保存最终的 output 并用于连接所有值。
to_print = "{0}^{1} = {2} = {3}".format(x,y,res1, res1[0])
我使用了格式字符串,如果你不熟悉这个,请检查 this 。
res2
保存数字的总和:
res2 = int(res1[0])
for n in res1[1:]:
res2 += int(n)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.