对于深度未知的子类问题,应当使用递归

#include <iostream>
using namespace std;
string root(string s){
    if(s.size()==1) return s;
    int temp=0;
    for(int i=0;i<s.size();i++){
temp+=s[i]-'0';
    }
    return root(to_string(temp));
}
int main() {
    string a;
    while (cin >> a ) { // 注意 while 处理多个 case
        // cout << a + b << endl;
        cout<<root(a)<<endl;
    }
}
// 64 位输出请用 printf("%lld")