leetcode_258
来源:互联网 发布:上海优越感知乎 编辑:程序博客网 时间:2024/06/09 19:35
1,题目大意
有一个非负整数num,重复这样的操作:对该数字的各位数字求和,对这个和的各位数字再求和……直到最后得到一个仅1位的数字(即小于10的数字)。
例如:num=38,3+8=11,1+1=2。因为2小于10,因此返回2。
2,分析
(1)通过循环求各个数的和:
num%10:得到是个位数
num/10 :得到的是个位以上的数
(2)用数组循环:
num可转换为一个字符数组nums,nums[i]-‘0’是这个数
(3)数根公式:
or
解释看维基百科:
数根公式-维基百科
3,代码
(1)数学循环:
public static int addDigits(int num) { while(true) { if (num < 10) { return num; } int sum = 0; while(num != 0) { sum += num % 10; num = num/10; } num = sum; } }
(2)数组循环:
public static int addDigits(int num) { while(num >=10){ String s = String.valueOf(num); char[] nums = s.toCharArray(); int sum = 0; for (int i = 0; i < nums.length; i++) { sum += nums[i]-'0'; } num = sum; } return num; }
(3)数根公式:
public static int addDigits(int num) { return (num-1)%9 +1; } public static int addDigits1(int num) { int a = num % 9; return a == 0?9:a; }
1 0
- leetcode_258
- LeetCode_258. Add Digits
- leetcode 21_Merge Two Sorted Lists & leetcode_258 Add Digits & leetcode_66plus one
- 递归、栈、非递归非栈实现二叉树的遍历
- 最短路几种算法对比
- HDU ACM 11 2079 选课时间 母函数或者DP
- 2016年11月7日学习总结
- Java 23种设计模式总结,收录学习
- leetcode_258
- 一个DirectDraw入门程序
- 基于Maven实现war包继承
- 第7天
- 动规第一天.2
- EJB的简介
- css笔记-img-a-伪类
- 20161020测试T2 解题报告(8)——rect
- oracle相关使用