CF1455A.Strange Functions
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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)=f(f(x))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≤x≤n.
我们定义一个函数 f(x)(其中 x 为正整数)如下:将 x 的十进制表示的所有数字反转,然后去掉前导零。例如,f(321)=123,f(120)=21,f(1000000)=1,f(111)=111。
再定义另一个函数 g(x)=f(f(x))x(其中 x 同样为正整数)。
你的任务是:对给定的正整数 n,计算在所有满足 1≤x≤n 的整数 x 中,g(x) 所能取到的不同值的个数。
输入格式
The first line contains one integer t (1≤t≤100) — the number of test cases.
Each test case consists of one line containing one integer n (1≤n<10100). This integer is given without leading zeroes.
第一行包含一个整数 t(1≤t≤100)—— 表示测试用例的数量。
每个测试用例由一行组成,该行包含一个整数 n(1≤n<10100)。该整数不带前导零。
输出格式
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].
对于每个测试用例,输出一个整数——即当 x 可取区间 [1,n] 内的任意整数时,函数 g(x) 所能取到的不同值的个数。
输入输出样例
输入#1
5 4 37 998244353 1000000007 12345678901337426966631415
输出#1
1 2 9 10 26
说明/提示
Explanations for the two first test cases of the example:
- if n=4, then for every integer x such that 1≤x≤n, f(f(x))x=1;
- if n=37, then for some integers x such that 1≤x≤n, f(f(x))x=1 (for example, if x=23, f(f(x))=23,f(f(x))x=1); and for other values of x, f(f(x))x=10 (for example, if x=30, f(f(x))=3, f(f(x))x=10). So, there are two different values of g(x).
示例中前两个测试用例的解释:
- 若 n=4,则对每个满足 1≤x≤n 的整数 x,均有 f(f(x))x=1;
- 若 n=37,则对某些满足 1≤x≤n 的整数 x,有 f(f(x))x=1(例如,当 x=23 时,f(f(x))=23,故 f(f(x))x=1);而对其他 x 值,有 f(f(x))x=10(例如,当 x=30 时,f(f(x))=3,故 f(f(x))x=10)。因此,g(x) 共有两个不同的取值。
输入解题思路,AI测评打分。不知道怎么写?