LeetCode题目-258

首页 编程分享 LEET_CODE 正文

leetCode 转载 编程分享 2020-07-05 15:22:55

简介 LeetCode题目-258


✏Leetcode之PHP版题目解析(258. Add Digits)


✏描述

求给定一个非负整数,相加各个位上的数,直到值剩下一位返回。


✏题目实例


✏题目分析

如果不去找到规律的话用迭代或者递归。

       /**
            * @param Integer $num
            * @return Integer
            */
           function addDigits($num) {
               if($num<10){
                   return $num;
               }
               $res=0;
               while($num>0){
                   $res +=$num%10;
                   $num /=10;
               }
                return $this->addDigits($res);
           }

上面要求我们在O(n)时间内解出,并且不使用循环或者递归。所以我们需要找出规律。

可以看出每九个一个循环,大于9的就是对9进行求余。但是,如果等于9,那么直接求余就是0,对于能被9整除的数如果我们只是直接求余的话那么必要是错误的,所以最后丧心病狂一句话

 /**
     * @param Integer $num
     * @return Integer
     */
    function addDigits($num) {
     return ($num-1)%9+1;
    }

转载链接:https://leetcode.cn/


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云