描述 |
---|
二进制小数 0.11 = 2 ^ (-1) + 2 ^ (-2) = 0.5 + 0.25 = 0.75,其中 ^ 代表幂运算。 所以十进制下的小数 0.125d = 0.001b。 然而有很多十进制下的小数是无法用有限位的二进制表示的,类似十进制下的无限循环小数。 例如 0.2d = 0.(0011)b,其中括号中的四位数会一直循环。 现在罗少想要知道一个十进制小数能否由有限位二进制小数表示。 |
输入 |
第一行是一个正整数 T 代表测试案例的数量。(1 ≤ T ≤ 50) 每组案例包含一个十进制小数 n,保证 0 < n < 1。 对于 33% 的数据,n 的小数部分不会超过 3 位。 对于 66% 的数据,n 的小数部分不会超过 15 位。 对于 100% 的数据,n 的小数部分不会超过 1000 位。 |
输出 |
针对每组样例,若 n 能转成有限位二进制小数则输出YES,否则输出NO,然后换行。 |
样例输入 |
3 0.5 0.3 0.9375 |
样例输出 |
YES NO YES |
HINT |
n 不存在前导零或后导零,即 n 一定是以 “0.” 开头并且 n 的小数部分的最后一个数字一定是非 0 的。 |
来源 |
19-20(2)第5次线上赛 |