坑点:数可以很大,所以字符串数组输入
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <list> #include <vector> #include <stack> #include <queue> #include <algorithm> #include <iostream> #define go(i,a,b) for(int i=a;i<=b;i++) #define og(i,a,b) for(int i=a;i>=b;i--) #define mem(a) memset(a,0,sizeof(a)) #define cs cout<<"-----"<<endl; using namespace std; const int inf=0x3f3f3f3f; const int maxn = 1e6 + 5; const double pi = atan(1.)*4; typedef long long ll; int f(int x) { int sum = 0; while(x) { sum += x % 10; x /= 10; } return sum; } int main() { char n[maxn]; while(scanf("%s",n) && n[0] != '0') { ll sum = 0; for(int i = 0;i < strlen(n);i++) sum += n[i] - '0'; while(sum > 9) sum = f(sum); cout<<sum<<endl; } return 0; }