python递归求数字的各项和,例如数字一千零二十四:“1024”,输出结果为“1+0+2+4=7”
第一种方法:
def sum(a): #求一个数字各项和,第一种递归方法
if 0<=a<=9: #从前到最后一个,出循环
return a
else:
return sum(a//10)+a%10 #表达式
print(sum(234))
第二种方法:
def sum(a,n): #求数字各项和,第二种递归法,a为数字,n为数字长度减一
if n==-1: #当n为-1是返回0,后面要用到n-1
return 0 #且返回0不影响相加结果
else:
x = a//10**n #获取每次传的a 的首位
b = x*10**n #为去出首位数字做准备,
c = a-b #eg:1234-1000 = 234
return x+sum(c,n-1) #注意每次传的c就是数字a在变化
print(sum(12345,4))