258. Add Digits(各位相加)

问题描述

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

问题分析

我们至少要将num的每一位相加一次得到一个新的数字,然后判断是否新的数字需要每一位再次相加,如此重复下去,这使用do{}while(条件)很容易做到。

代码

int addDigits(int num) {
    int sum = 0;
    do{
        sum = 0;
        while(num!=0){
            int x = num%10;
            sum += x;
            num/=10;
        }
        num = sum;
    }while(sum>=10);
    return sum;
}

提交结果截图

258. Add Digits(各位相加)_第1张图片

你可能感兴趣的:(leetcode刷题日记,刷题)