树根Python

#树根,输入一个正整数,把它各个位相加,累加和为一位数为止。

#递归(第一种方法)

def f(x):

     if len(x)==1:

          return x

     else:

          s=0

          for i in range(len(x)):

                 s+=int(x[i])

          return f(str(s))

x=input()

print(f(x))

#如果它的长度是1的时候,就返回它自己本身

#如果不是,就是取它的字符串的下标进行累加,再进行调用,如果各个位数字调用和的长度为一位数,就返回累加和的数,如果长度不是为1,就不停的调用,直到各个位数字相加和长度为1为止。

#while循环(第二种)

n=int(input())

x=n

s=0

while True:

      while n!=0:

             s+=n%10

             n=n//10

       if s>10:

            s,n=0,s

       else:

            break

print(f"{x}树根是{s}")

#while True 就是说值为真进行循环操做。

#while n的值不为0,就比如n等于57,n等于n余10等于7,n整除于10等于5,5再次余10等于5,s等于5+7=12,以此类推进行循环。

#如果它们的和大于10,s,n等于0,s的意思为,0赋值于s,就是再次从0开始累加,s赋值于x,例如57,相加后s等于12,12>10,12就赋值给n,12不为0时,就在次进行累加和s=3,3不大于10就break跳出。

#结束循环可以求出树根,至于前面的x,是上面把n的值赋值于x,就是把n的值存起来的意思。

 

 

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值