leetcode各位相加

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,543评论 0 41
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 8,552评论 0 19
  • 各校历年复试机试试题 清华、北大、华科试题详细笔记部分,少笔记部分与少数leetcode【含个人整理笔记】 一、详...
    医学工程与科学园地阅读 4,994评论 0 1
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,720评论 0 13
  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 7,678评论 0 5

友情链接更多精彩内容