目录

CF1455A-Strange Functions

CF1455A-Strange Functions

题目:

题目描述:

Let’s define a function $ f(x) $ ( $ x $ is a positive integer) as follows: write all digits of the decimal representation of $ x $ backwards, then get rid of the leading zeroes. For example, $ f(321) = 123 $ , $ f(120) = 21 $ , $ f(1000000) = 1 $ , $ f(111) = 111 $ .

Let’s define another function $ g(x) = \dfrac{x}{f(f(x))} $ ( $ x $ is a positive integer as well).

Your task is the following: for the given positive integer $ n $ , calculate the number of different values of $ g(x) $ among all numbers $ x $ such that $ 1 \le x \le n $ .

输入格式:

The first line contains one integer $ t $ ( $ 1 \le t \le 100 $ ) — the number of test cases.

Each test case consists of one line containing one integer $ n $ ( $ 1 \le n < 10^{100} $ ). This integer is given without leading zeroes.

输出格式:

For each test case, print one integer — the number of different values of the function $ g(x) $ , if $ x $ can be any integer from $ [1, n] $ .

样例:

样例输入1:

1
2
3
4
5
6
5
4
37
998244353
1000000007
12345678901337426966631415

样例输出1:

1
2
3
4
5
1
2
9
10
26

思路:

实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// Problem: CF1455A Strange Functions
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/CF1455A
// Memory Limit: 250 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)

#include "ybwhead/ios.h"
int main()
{
    int TTT;
    yin >> TTT;
    while (TTT--)
    {
        string s;
        yin >> s;
        cout << s.size() << endl;
    }
    return 0;
}