数学
各位相加
1. 题目描述
难易度:简单
给定一个非负整数 num
,反复将各个位上的数字相加,直到结果为一位数。
示例:
输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-digits
2. 思路分析
- 计算num每一位数字之和
- 判断,如果满足条件则直接返回
- 不满足条件则继续循环计算
3. 代码演示
/**
* @Description TODO
* @Author YunShuaiWei
* @Date 2020/6/28 16:04
* @Version
**/
public class Solution {
public static void main(String[] args) {
Solution s = new Solution();
int i = s.addDigits(38);
System.out.println(i);
}
/**
*
* @return int
* @Param [num]
**/
public int addDigits(int num) {
while (true) {
int n = 0;
while (num != 0) {
//每次从个位取数字
n += num % 10;
//去掉一位数
num = num / 10;
}
num = n;
if (num < 10) {
return num;
}
}
}
}