
def digital_root(num):
if len(str(num))==1:
print('=>',num)
else:
arr=list(str(num))
print('=>','+'.join(arr))
s=sum(map(int,arr))#map(函数,序列)对序列中的每个元素进行相应的函数操作
#此处把字符串的各个元素转化为整型
#s=list(map(int,arr)) #[2, 2, 2, 3, 4, 5]
if len(str(s))>1:
print('=>',s,'...')
digital_root(s) #递归
digital_root(222345)
# => 2+2+2+3+4+5
# => 18 ...
# => 1+8
# => 9
解法二
def digital_root1(num):
str_num=str(num)
if len(str_num)==1:
return str_num
else:
return digital_root1(sum([int(i) for i in str_num]))
digital_root(222345)