python - 如何使循环重复直到总和为一位数?

标签 python

提示:编写一个程序,将整数中的所有数字相加。如果所得总和超过一位数,则继续重复,直到总和为一位数。例如,数字 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/

相关文章:

python - 使用 Qt 样式表更改状态更改时的图标

python - 如何用序列化器实现,当管理员用户请求时,序列化所有字段,而普通用户请求时,序列化部分字段?

python - 使用python从php服务器下载pdf文件

python - 如何设置VideoCapture的窗口大小?

python - PyCharm 中 Unresolved reference 问题

python - 正则表达式——如何允许不相邻的替代项?

python - Python导入txt表格文件中的等值线图

python - 在python中为时间序列图添加趋势线

python - 谁能告诉我django的延迟加载和事务吗?

python - 如何删除 pandas 中匹配一列并在另一列上满足方程式的行?