数据结构实例<四>(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
2has
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;
}
相关文章推荐
- 数据结构实例<九>(IsHappy 快乐数)容易
- 数据结构实例<五>(Intersection)容易
- 数据结构实例<七>(Left-Pad 左填充)容易
- 数据结构实例<二>(斐波那契数列)入门
- 用java源代码学数据结构<四>: LinkedList 详解
- Linux设备模型<四>实例一winter_kobject
- 数据结构实例<八>(IsUgly 丑数)容易
- 数据结构实例<六>(移动“零”)容易
- 数据结构实例<一>(数组排序)入门
- C++封装SQLite实例<四>
- <Android学习笔记四>Android ListFragment实例Demo(自定义适配器)
- Android Layout研究 <四> 实例
- linux服务器配置实例<5>---配置Linux防火墙
- Winsock程序设计初步之<三> 源程序实例(2)
- 大话西游之Office应用实例系列! <5>
- 大话西游之Office应用实例系列! <8>
- linux服务器配置实例<10>---配置web服务器
- 大话西游之Office应用实例系列! <2>
- 大话西游之Office应用实例系列! <2.5>
- linux服务器配置实例<11>---配置邮件服务器