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

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

作者: Aedda | 来源:发表于2019-07-20 09:24 被阅读0次

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
示例:
输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

  • 自己当时想的解法(但用了循环和判断)
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

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

  • c语言的解法
int  main( int number)
{

   if (number==0) return 0;
    int i =number % 9;
    return i==0?9:i;
}
  • python 的解法
def  run(num):  
    x=num and (num % 9 or 9)
    print x 
    return  x
run(90)

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

  1. 当一个非负整数不能被9整除的时候(一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数),这个数的各位相加等于它的余数
  2. 当一个非负整理(一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数)能被9整除的时候,它的各位相加等于9

需掌握:关于Python中的and和or的深度理解 自行百度

相关文章

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

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2解释: 各位相加...

  • 258-各位相加

    给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数。 输入:38输出:2 解释: 各位相加的过程为...

  • 258. 各位相加

    内容 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2解释:...

  • leetcode各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2解释: 各位...

  • 258. 各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2解释: 各位...

  • 各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2解释: 各位...

  • 258. 各位相加

    题目描述: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 进阶: 思路: Jav...

  • Leetcode 258. 各位相加

    题目描述 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例 1: 输入: 38 输出:...

  • 各位相加

    题目描述 难度级别:简单 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: ...

  • Swift---LeetCode,第258题

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2解释: 各位...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/fvyxfctx.html