leetcode--Add Digits

来源:互联网 发布:w2003办公软件下载 编辑:程序博客网 时间:2024/05/17 06:38

题目:Add Digits

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

For example:

Given num = 38, the process is like: 3 + 8 = 111 + 1 = 2. Since 2 has only one digit, return it.

Follow up:
Could you do it without any loop/recursion in O(1) runtime?

One:基本循环 ,先求各数之和,后把和赋给num,直到num<=9

public class Solution {    public int addDigits(int num) {        while(num>=10){            int sum = 0;            while(num!=0){                sum += num % 10;                num /= 10;            }            num = sum;        }        return num;    }}

Two:不用循环,注意:num的返回值是除以9的余数。

public class Solution {    public int addDigits(int num) {        return num==0 ? 0 : (num % 9 == 0 ? 9 : (num % 9));    }}


0 0
原创粉丝点击