您的位置:首页 > 理论基础 > 数据结构算法

数据结构实例<四>(Add Digits)容易

2017-02-18 10:45 274 查看

题目:

Add Digits:
Given a non-negative integer 
num
,
repeatedly add all its digits until the result has only one digit.

样例

Given 
num
 = 38.

The process is like: 
3 + 8 = 11
1
+ 1
 = 
2
. Since 
2
 has
only one digit, return 
2
.

Function Code:

public static int addDigits(int num)
{
// Write your code here
//num 0 !0
//num <10 >10

/*
* 外循环 处理数据的依据就是求模运算大于零,且这个数大于十 不大于十直接返回
* 内循环 求余累加sum num从个位开始依次到N位,直至num=0不再进入

*/
if (num<10)
{

return num;
}
else
{

while (num % 10 > 0&&num>10)
{
var sum = 0;
while (num > 0)
{
sum += num % 10;
num /= 10;

}
num = sum;
}
return num;
}
}
public static int addDigitsforRole(int num) {
/*
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 1
11 2
12 3
13 4
14 5
15 6
16 7
17 8
18 9
19 1
20 2
* 9个数一个轮回,我们就直接模9
* 那么特殊情况(9 及9的倍数)我们采用减一加一获取
* 减一加一也兼顾了其它数的求根
*/
return (num-1)%9+1;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: