美文网首页
leetcode各位相加

leetcode各位相加

作者: simle天晴 | 来源:发表于2018-08-03 13:35 被阅读0次
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
            

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

  • c语言的解法
# include  <stdio.h>

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)

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

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

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

关于Python中的and

image.png

相关文章

  • leetcode各位相加

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

  • LeetCode-各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 进阶:你可以不使用循环或者递归,且...

  • Swift - LeetCode - 各位相加

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

  • leetcode 算法-各位相加(递归)

    说明 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 首先是使用递归的方式实现: 解题思路...

  • LeetCode 258. 各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 C++ 找规律。假如一个三位数'abc',...

  • leetcode--258--各位相加

    题目:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 进阶:你可以不使用循环或者递...

  • LeetCode258.各位相加

    原题链接 循环,数论可以进行推倒,然而我看不懂。。。。 AcWing大佬题解

  • Leetcode 258. 各位相加

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

  • LeetCode刷题-各位相加

    前言说明 算法学习,日常刷题记录。 题目连接 各位相加[https://leetcode-cn.com/probl...

  • LeetCode-454-四数相加 II

    LeetCode-454-四数相加 II 454. 四数相加 II[https://leetcode-cn.com...

网友评论

      本文标题:leetcode各位相加

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