leetcode各位相加

2018-08-03  本文已影响0人  simle天晴
image.png

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

示例:

输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

当看到这题的时候感觉一脸o((⊙﹏⊙))o,

自己当时想的解法(但用了循环和判断)


class Solution(object):
    def addDigits(self, num):
        while  True:
          if num>9:
            s=0
            for i in range (len(str(num))):
                s=int(str(num)[i])+s
            num=s
          else:
            break
          
        return   num
            

下面来看看这题正确的解法

# include  <stdio.h>

int  main( int number)
{

   if (number==0) return 0;
    int i =number % 9;
    return i==0?9:i;
}


def  run(num):  
    x=num and (num % 9 or 9)
    print x 
    return  x
run(90)

解法解析(下面是介绍的两种情况)

关于Python中的and

image.png
上一篇 下一篇

猜你喜欢

热点阅读