很粗暴的解决方式,虽然题目中提到不要用循环,而且要求算法为 O(1),看别人写的代码,觉得很神奇
#include <iostream>
using namespace std;
class Solution {
public:
int addDigits(int num) {
int sum=0;
while(num>0)
{
sum=sum+num%10;
num=num/10;
}
// cout<<"iiii "<<sum<<endl;
while(sum>=10)
{
num=sum;
sum=0;
while(num>0)
{
sum=sum+num%10;
num=num/10;
}
// cout<<"iiii "<<sum%10<<endl;
}
return sum;
}
};
int main()
{
// cout << "Hello world!" << endl;
int num;
cin>>num;
Solution s;
//cout<<num<<endl;
cout<<s.addDigits(num)<<endl;;
return 0;
}