258. Add Digits

来源:互联网 发布:mac版chrome好用吗 编辑:程序博客网 时间:2024/05/22 06:13

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.


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

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

int solution1(int num){    return (num - 1) % 9 + 1;}


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



0 0
原创粉丝点击