zoukankan      html  css  js  c++  java
  • LeetCode258. 各位相加

    如果不考虑进阶的条件,可以直接循环或者递归,把一位上的所有数字加起来然后对10取余。

    class Solution {
    public:
        int addDigits(int num) {
            int sum = 0;
            while(num >= 10) {
                sum = 0;
                while(num != 0) {
                    int temp = num % 10;
                    sum += temp;
                    num /= 10;
                }
                num = sum;
            }
            return num;
        }
    };
    

    不过进阶要求我们不能用循环或者递归。
    实际上,计算所有位上的数字有一个数学方法。

    class Solution {
    public:
        int addDigits(int num) {
            if(num % 9 == 0 && num != 0) {
                return 9;
            }
            return num % 9;
        }
    };
    

    实际上,上面代码可以压缩到一行里:

    class Solution {
    public:
        int addDigits(int num) {
            return (num - 1) % 9 + 1;
        }
    };
    
  • 相关阅读:
    Zepto源码分析-动画(fx fx_method)模块
    CSS3用法理解
    移动端网页meta设置和响应式
    javascript基础-正则表达式
    net core 2.x
    angular
    .net core 2.x
    .net core 2.x
    DDD
    DDD
  • 原文地址:https://www.cnblogs.com/linrj/p/13541638.html
Copyright © 2011-2022 走看看