题目:给一个正数,如果大于10将位数的数字全加起来,加起来以后还大于10继续加,直到个位数,然后返回这个个位数。
思路:没想到什么简单的办法,只是想如果想要知道有多少位,我的办法是把这个数字化为字符串,刚想到一个办法,只要这个数大于10就除以10,并对它取余得到位数,这样一看我的办法还算比较笨的办法了,最后递归剩下的数字。附上代码然后去看看大神们的做法:
public int addDigits(int num) {
String a=num+"";
int sum=0;
if(num<10) return num;
if(num<19) return 1+num%10;
else{
for(int i=0;i<a.length();i++){
sum+=Integer.valueOf(a.charAt(i)+"");
}
return addDigits(sum);
}
}
果然数学的世界我们一点也不懂。
int addDigits(int num) {
return 1 + (num - 1) % 9;
}