CF1702A Round Down the Price
题目描述
在商店里,售货员希望将所有商品的价格都变成整洁的数字。
在本题中,若一个数字是 $10$ 的幂,则称其为“整洁数字”。例如,$10^0 = 1$、$10^1 = 10$、$10^2 = 100$ 都是整洁数字,但 $20$、$110$ 和 $256$ 不是整洁数字。
因此,如果某件商品的价格为 $m$ 布尔(商品的价格不超过 $10^9$),售货员希望将其价格改为不大于 $m$ 的最近的整洁数字。他们想知道:需要将商品的价格减少多少布尔,才能使其价格恰好等于 $10^k$ 布尔,其中 $k$ 的取值应尽可能大($k$ 为任意非负整数)。
例如,若商品的价格为 $178$ 布尔,则新的价格应为 $100$,答案为 $178-100=78$。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例为一行,包含一个整数 $m$($1 \le m \le 10^9$),表示商品的价格。
输出格式
对于每个测试用例,输出一行一个整数 $d$($0 \le d < m$),表示需要将商品价格减少 $d$ 布尔,使得商品的价格变为最大的整洁数字。更正式地说:$m-d=10^k$,其中 $k$ 为最大的非负整数。
说明/提示
例如:
- $1-0=10^0$,
- $2-1=10^0$,
- $178-78=10^2$,
- $20-10=10^1$,
- $999999999-899999999=10^8$,
- $9000-8000=10^3$,
- $987654321-887654321=10^8$。
注意,每个测试用例中,得到的都是最大的整洁数字。
由 ChatGPT 4.1 翻译