CF1702A.Round Down the Price

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Round Down the Price

题目描述

在商店里,售货员希望将所有商品的价格都变成整洁的数字。

在本题中,若一个数字是 1010 的幂,则称其为“整洁数字”。例如,100=110^0 = 1、101=1010^1 = 10、102=10010^2 = 100 都是整洁数字,但 2020、110110 和 256256 不是整洁数字。

因此,如果某件商品的价格为 mm 布尔(商品的价格不超过 10910^9),售货员希望将其价格改为不大于 mm 的最近的整洁数字。他们想知道:需要将商品的价格减少多少布尔,才能使其价格恰好等于 10k10^k 布尔,其中 kk 的取值应尽可能大(kk 为任意非负整数)。

例如,若商品的价格为 178178 布尔,则新的价格应为 100100,答案为 178−100=78178-100=78。

输入格式

输入的第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例为一行,包含一个整数 mm(1≤m≤1091 \le m \le 10^9),表示商品的价格。

输出格式

对于每个测试用例,输出一行一个整数 dd(0≤d<m0 \le d < m),表示需要将商品价格减少 dd 布尔,使得商品的价格变为最大的整洁数字。更正式地说:m−d=10km-d=10^k,其中 kk 为最大的非负整数。

说明/提示

例如:

  • 1−0=1001-0=10^0,
  • 2−1=1002-1=10^0,
  • 178−78=102178-78=10^2,
  • 20−10=10120-10=10^1,
  • 999999999−899999999=108999999999-899999999=10^8,
  • 9000−8000=1039000-8000=10^3,
  • 987654321−887654321=108987654321-887654321=10^8。

注意,每个测试用例中,得到的都是最大的整洁数字。

由 ChatGPT 4.1 翻译

样例

7
1
2
178
20
999999999
9000
987654321
0
1
78
10
899999999
8000
887654321

在线编程 IDE

建议全屏模式获得最佳体验