使用 python 计算数字的总和
Calculate the sum of the digits using python
我想用 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)
但我没有得到正确的总和值。
尝试添加一些调试语句以在程序运行时检查值。
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
print (x, x1, x2, x3)
x4 = x+x1+x2+x3
print (x4)
num2 = int(x4)
x6 = num2 //10
x7 = (num2 -x6)//10
print (x6, x7)
print("your birth number is" ,x6+x7)
你会很快找到你的问题。
对一个整数的数字求和,直到结果为 one-digit 整数:
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
我想用 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)
但我没有得到正确的总和值。
尝试添加一些调试语句以在程序运行时检查值。
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
print (x, x1, x2, x3)
x4 = x+x1+x2+x3
print (x4)
num2 = int(x4)
x6 = num2 //10
x7 = (num2 -x6)//10
print (x6, x7)
print("your birth number is" ,x6+x7)
你会很快找到你的问题。
对一个整数的数字求和,直到结果为 one-digit 整数:
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