繁体   English   中英

如何编写递归求和数字的 function

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM