使用python计算数字的总和

时间:2018-02-15 22:02:17

标签: sum sum-of-digits

我想使用python找到数字的总和。当我进入1982年的出生年份时,结果应该是1 + 9 + 8 + 2 = 20最终总结果是2 + 0 = 2.

我发布这个问题的原因是我没有找到任何简单的python解决方案。

这是我的代码

num = int(input("Enter your birth year: "))
x  = num //1000
x1 = (num - x*1000)//100
x2 = (num - x*1000 - x1*100)//10
x3 = num - x*1000 - x1*100 - x2*10
x4 = x+x1+x2+x3
num2 = int(x4)
x6 = num2 //10
x7 = (num2 -x6)//10

print("your birth number is" ,x6+x7)

但我没有得到正确的总和值。

2 个答案:

答案 0 :(得分:0)

求和的数字,直到结果是一位数整数:

def sum_digits(num):
    num = str(num)
    if len(num) < 2:
        return int(num)
    else:
        return sum_digits(sum([int(dig) for dig in str(num)]))

>> sum_digits(1982)
2

或者更简单的版本,您的号码是一年:

def sum_digits(num):
    return sum([int(dig) for dig in str(num)])

只需调用该函数两次

>> sum_digits(sum_digits(1982))
2

答案 1 :(得分:-1)

尝试添加一些调试语句,以便在程序运行时检查值。

dup_num_nxt

您很快就会发现问题。