P11920 [PA 2025] 乘数 / Mnożenie cyfr

题目背景

PA 2025 R3B.

题目描述

对于非负整数 $n$,定义函数 $f(n)$: - 令 $n$ 的十进制表示为 $\overline{a_1a_2\ldots a_k}$。 - 则 $f(n)=a_1a_2\cdots a_k$。 换言之,$f(n)$ 就是将 $n$ 十进制表示下的数位相乘得到的结果。 对于非负整数 $x$,按如下程序执行操作: 1. 若 $x\le 9$,终止操作; 2. 否则令 $x\gets f(x)$,回到 1。 > **举例** > > 1. $57\to 5\times 7=35\to 3\times 5=15\to 1\times 5=5$。 > 2. $255\to 2\times 5\times 5=50\to 5\times 0=0$。 可以证明,对于任意非负整数 $x$,这个操作都一定会终止。 $T$ 组数据,每组数据给定 $n$,对于 $i=0,1,\ldots,9$,求出: - 有多少个 $1\le j\le n$ 满足将 $j$ 操作后最终会得到 $i$。

输入格式

**本题单个测试点内含有多组测试数据。** 第一行,一个正整数 $T$。 第二行,$T$ 个正整数 $n$,描述 $T$ 组数据。

输出格式

输出 $T$ 行,每行 $10$ 个非负整数,每行第 $i$ 个整数表示: - 有多少个 $1\le j\le n$ 满足将 $j$ 操作后最终会得到 $i-1$。

说明/提示

- $1\le T\le 10^3$; - $1\le n\le 10^{18}$。