LeetCode第258题

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

示例:

输入: 38
输出: 2 
解释: 各位相加的过程为3 + 8 = 11,1 + 1 = 2。 由于2 是一位数,所以返回 2。

思路:由题意可知,超过10的数其实是减9的一个过程。例如10是1+0=1,减一个9,23是2+3=5,减2个9,,,,,,但是要考虑0的情况和9的倍数的情况,因为它们的mod9后的值都是0,不符合题意。因此要进行判断。代码如下:


	public int addDigits(int num){
		if(num==0) return 0;
		if(num%9==0) return 9;
		else{
			return num%9;
		}
	}

 

你可能感兴趣的:(LeetCode)