天天看点

HUST 1379 Digits

Description

A googol written out in decimal has 101 digits. A googolplex has one plus a googol digits. That's a lot of digits! Given any number 

x0, define a sequence using the following recurrence:

xi+1= the number of digits in the decimal representation of xi

Your task is to determine the smallest positive i such that xi = xi-1.

Input

Input consists of several lines. Each line contains a value of x0. Every value of x0 is non-negative and has no more than one million digits. The last line of input contains the word END.

Output

For each value of x0 given in the input, output one line containing the smallest positive i such that xi = xi-1.

Sample Input

42

END

Sample Output

3

#include<string>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<map>
#include<cmath>
using namespace std;
const int maxn = 1e6 + 5;
typedef long long LL;
int T, n, m;
char s[maxn];

int main()
{
  while (scanf("%s", s) != EOF)
  {
    if (s[0] == 'E') break;
    int cnt = 1, len = strlen(s);
    if (s[0] == '1'&&len == 1) { printf("%d\n", cnt); continue; }
    else cnt++;
    for (int res = 0; len != 1; cnt++)
    {
      for (int i = len; i; i /= 10) res++;
      len = res;  res = 0;
    }
    printf("%d\n", cnt);
  }
  //while (scanf("%d", &n) != EOF){}
  return 0;
}