树根Digital root算法

来源:互联网 发布:快时尚销售数据报告 编辑:程序博客网 时间:2024/05/02 04:42

题目:https://leetcode.com/problems/add-digits/,题目很简单,此处文章只是防止自己将来忘了第二中的公式,毕竟第二种的方法我没太懂(原谅我英语不甚好)


方法1:

此法思路很简单,只是简单的拆了加,再拆再加的过程。

<span style="font-size:18px;">int addDigits(int num) {    if(num < 10){        return num;    }else{        int sum = 0;        int temp = 0;        while(num/10){            sum += num%10;            num /= 10;        }        sum += num % 10;        addDigits(sum);    }}</span>

方法2:

此处推荐文章:https://en.wikipedia.org/wiki/Digital_root,因都是英文,我看不太懂,就看到了那个公式,如果哪位把它翻译了那就棒棒得了(把翻译好的思路讲给我听哈)。虽然网站上有中文版的,但是你们看了就知道了。

用公式:n-9【(n-1)/9】;【a】的计算式求出不大于a的正整数。

当然,这样的话程序就变得十分简单了:

<span style="font-size:18px;">int addDigits(int num) {    if(num < 10){        return num;    }else{        return num-9*((num-1)/9);    }}</span>


0 0