【HDU-1013】Digital Roots(注意數據範圍)

坑點:數可以很大,所以字符串數組輸入 

#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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章