数字和【难度:1级】-(Python Solutions)最佳题目答案合集(含多种解法)--景越编程训练之挑战1000道Python面试题

数字和【难度:1级】:

答案1:

def sum_digits(n):
    return n if n < 10 else sum_digits(sum(int(i) for i in str(n)))

答案2:

def sum_digits(n):
   return 0 if (n == 0) else 1 + ((n-1) %9)

答案3:

sum_digits=lambda n: (lambda i: 0 if i==0 else (i-1)%9+1)(int(n))

答案4:

def sum_digits(n):
    return (n - 1) % 9 + 1 if n else 0

答案5:

def sum_digits(n):
    while n >= 10:
        n = sum(int(a) for a in str(n))
    return n
​

答案6:

def sum_digits(n):
    while n > 9:
        n = sum([int(el) for el in list(str(n))])
    return n​

答案7:

def sum_digits(n):
    if n < 10:
        return n
    else:
        a = str(n)
        res = 0
        for i in a:
            res = res + int(i)
        return sum_digits(res)

答案8:

def sum_digits(n):
    while len(str(n)) > 1:    
        n = sum(int(c) for c in str(n))
    return n​

答案9:

def sum_digits(n):
    s = n
    while s > 9: 
        s = digit_sum(s)
    return s
        
def digit_sum(n): 
    s = 0
    while n:
        s += n % 10
        n //= 10
    return s​

答案10:

def sum_digits(n):
    st = str(n)
    while len(st)>1:
        st = str(sum(int(x) for x in st))
    return int(st)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值