Every day a leetcode
题目来源:258. 各位相加
解法1:模拟
模拟各位相加的过程。
代码:
int addDigits(int num){
while(num>=10)
{
int sum=0;
while(num>=0)
{
sum+=num%10;
num/=10;
}
num=sum;
}
return num;
}
结果:

解法2:数学

核心思想:
x*100+y*10+z=x*99+y*9+x+y+z
代码:
int addDigits(int num){
if(num == 0) return 0;
if(num%9 == 0) return 9;
return num%9;
}
结果:

示例:

这篇博客介绍了两种解决「各位相加」问题的方法。解法一是通过模拟每位数的相加过程,不断迭代直到结果不再大于9;解法二是利用数学规律,通过取模运算快速得到结果。示例展示了这两种方法的有效性。
521

被折叠的 条评论
为什么被折叠?



