Leetcode

2019-02-02

2019-02-02  本文已影响0人  ruicore
LeetCode 258. Add Digits.jpg

LeetCode 258. Add Digits

Description

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

Example:

Input: 38
Output: 2
Explanation: The process is like: 3 + 8 = 11, 1 + 1 = 2.
Since 2 has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?

描述

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

示例:

输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。
进阶:
你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?

思路

# -*- coding: utf-8 -*-
# @Author:             何睿
# @Create Date:        2019-02-02 23:27:58
# @Last Modified by:   何睿
# @Last Modified time: 2019-02-02 23:29:33


class Solution:
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int
        """
        if num == 0: return 0
        b = num % 9
        return b if b != 0 else 9

源代码文件在这里.
©本文首发于何睿的博客,欢迎转载,转载需保留文章来源,作者信息和本声明.

上一篇下一篇

猜你喜欢

热点阅读