提示:编写一个程序,将整数中的所有数字相加。如果所得总和超过一位数,则继续重复,直到总和为一位数。例如,数字 2345 的总和 2+3+4+5 = 14
不是单个数字,因此请用 1+4 = 5
重复,这是单个数字数字。
这是我目前的代码。它适用于第一部分,但我无法弄清楚如何让它重复,直到总和为一位数。我很确定我应该用另一个 while
语句嵌套我已有的代码
n = int(input("Input an integer:"))
sum_int=0
while float(n)/10 >= .1:
r= n%10
sum_int += r
n= n//10
if float(n)/10 > .1: print(r, end= " + ")
else: print(r,"=",sum_int)
这是代码的示例输出
输入一个整数:98765678912398
8 + 9 + 3 + 2 + 1 + 9 + 8 + 7 + 6 + 5 + 6 + 7 + 8 + 9 = 88
8 + 8 = 16
1 + 6 = 7
最佳答案
这应该可行,不涉及除法。
n = int(input("Input an integer:"))
while n > 9:
n = sum(map(int, str(n)))
print(n)
它基本上将整数转换为字符串,然后使用列表推导式对数字求和并继续,直到数字不大于 9。
关于python - 如何使循环重复直到总和为一位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39551886/