https://leetcode.com/problems/add-digits/#/description
好几天没做了,好慌啊。这题的O(1) 方法想了下,最后是先写出循环的方法,然后跑了100 次找规律,发现大概是没10 个数字一组轮回。找到规律了以后凑个映射搞定。
int addDigits(int num) { int t = num; while (t >= 10) { int tt = t; int perDigitSum = 0; while (tt > 0) { int d = tt % 10; perDigitSum += d; tt /= 10; } t = perDigitSum; } return t; } int addDigits2(int num) { if (num == 0) return 0; return num % 9 == 0 ? 9 : num % 9; }