题目: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>