你能帮我写一个python程序(使用Python 3.4)迭代地添加一个数字的元素,直到总和达到一个数字。我的计划如下:
import random
import sys
import os
n = input('Please enter the number: ')
ar = list(map(int, str(n)))
sm = sum(ar)
ar_sm = list(map(int, str(sm)))
total_num = sum(ar_sm)
print(total_num)
我对这种逻辑不满意,我相信有更好的方法可以做到这一点。
答案 0 :(得分:0)
当需要第三次迭代时,您的逻辑不起作用。例如,如果您的输入为99999999999
,则结果为18
。你需要一个循环:
n = input('Please enter the number: ')
while len(n) > 1: # If string length is 1, then stop
numlist = [int(x) for x in n] # Makes an integer list from all chars in the input string
n = str(sum(numlist)) # Sum and parse to string
print(n)
输入:
99999999999
输出:
9