CF1455A Strange Functions 题解

Content

定义一个函数 \(f(x)\)\(x\) 翻转并去掉前导零之后的数,现在有 \(t\) 组询问,每组询问给定一个整数 \(n\),请求出对于所有的 \(1\leqslant x\leqslant n\)\(g(x)=\dfrac{x}{f(f(x))}\) 的取值有多少种。

数据范围:\(1\leqslant t\leqslant 100,1\leqslant n<10^{100}\)

Solution

签到题。

我们发现,如果一个数 \(x\)\(k\)\(0\),那么 \(g(x)=10^k\),因此如果给定的 \(n\)\(l\) 位,那么所有 \(0\)\(l-1\)\(0\) 的情况都能被取到,也就是 \(g(x)\) 能够取到 \(1,10,100,...,10^{l-1}\)。因此答案就是 \(l\)

我们可以直接用字符串读入数字然后利用 size() 或者 length() 函数得到其位数。

Code

int t;
string s;

int main() {
	t = Rint;
	while(t--) {
		cin >> s;
		printf("%d\n", s.size());
	}
	return 0;
}
posted @ 2021-12-16 14:40  Eason_AC  阅读(33)  评论(0)    收藏  举报