Python 如何编写递归求和的函数

Python 如何编写递归求和的函数,python,Python,我需要一个函数,它接受变量,然后计算这些变量(例如x和yxy),然后递归地找到剩下两个点的和。 但是 该函数需要打印所有计算结果。 例如 函数将打印此内容,53 对不起,我的英语不好,问这个问题也祝你好运。不是很漂亮,但是做得很好 def f(x, y): tmp = x**y sum = 0 while tmp >= 1: sum = sum + tmp % 10 tmp = (tmp // 10) return sum

我需要一个函数,它接受变量,然后计算这些变量(例如x和yxy),然后递归地找到剩下两个点的和。 但是 该函数需要打印所有计算结果。 例如 函数将打印此内容,53
对不起,我的英语不好,问这个问题也祝你好运。

不是很漂亮,但是做得很好

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
保存最终输出并用于连接所有值

to_print = "{0}^{1} = {2} = {3}".format(x,y,res1, res1[0])
我使用了一个格式字符串,如果您不熟悉的话


res2
保存数字的总和:

res2 = int(res1[0])
for n in res1[1:]:
        res2 += int(n)

知道你尝试过什么以及你的困境会很有帮助。如果您还没有实际的代码,则可以使用伪代码或方法的基本描述。如果您想创建新问题,则不应重复使用此问题。如果您有答案,请将其标记为正确答案。如果你想问一个新问题,请点击旁边的复选标记,将答案标记为已接受!谢谢