数字中的数字总和
Sum of digits in a number
这个函数应该return一个数字中所有数字的总和。
def sum_digits(num):
if int(num) <= 0:
return 0
else:
sum = 0
while int(num) != 0:
n = int(num) % 10
num = int(num) / 10
sum = int(sum + n)
return sum
它适用于较小的数字,但如果我输入例如数字 99999999999999999999999999999999,它 return 是 74 而不是 297。
感谢帮助
您需要用 (//) 而不是 (/) 进行除法,因为那样会 return 一个浮点数。
你需要做这样的事情:
def sum_digits(num):
num = int(num)
if num <= 0:
return 0
else:
sum = 0
while num != 0:
n = num % 10
num //= 10
sum += n
return sum
(为了提高可读性,我对您的代码进行了一些修改。)
编辑:拼写错误已修复
我处理你的问题有点不同
number = 999999999999999999999999999999999
number = str(number)
sum = 0
for digit in number:
digit = int(digit)
sum = digit+sum
print(sum)
这个函数应该return一个数字中所有数字的总和。
def sum_digits(num):
if int(num) <= 0:
return 0
else:
sum = 0
while int(num) != 0:
n = int(num) % 10
num = int(num) / 10
sum = int(sum + n)
return sum
它适用于较小的数字,但如果我输入例如数字 99999999999999999999999999999999,它 return 是 74 而不是 297。
感谢帮助
您需要用 (//) 而不是 (/) 进行除法,因为那样会 return 一个浮点数。 你需要做这样的事情:
def sum_digits(num):
num = int(num)
if num <= 0:
return 0
else:
sum = 0
while num != 0:
n = num % 10
num //= 10
sum += n
return sum
(为了提高可读性,我对您的代码进行了一些修改。)
编辑:拼写错误已修复
我处理你的问题有点不同
number = 999999999999999999999999999999999
number = str(number)
sum = 0
for digit in number:
digit = int(digit)
sum = digit+sum
print(sum)