平衡三进制 II 题目描述 平衡三进制记数系统以 3 为基数,但每一位数码不是使用 0、1、2,而是使用 -1、0、1。为了便于表示,本题中用数字 2 表示 -1。 例如: 平衡三进制 十进制 --- --- 102 8 1120.22 32 5/9 2210.11 -32 5/9 其中: 32 5/9 = 1 3^3 + 1 3^2 + (-1) 3^1 + (-1) 3^(-1) + (-1) 3^(-2)。 一个十进制数转换为平衡三进制数的一种方法如下: 1. 先将该十进制数表示成普通三进制数。例如 32 5/9 = (1012.12) 3。 2. 将得到的三进制数与位数相同的全 1 序列按照三进制记数系统的规则相加。例如 1012.12 + 1111.11 = 2201.00。 3. 将第 2 步得到的序列与同一个全 1 序列按位独立相减。例如 2201.00 - 1111.11 = 1,1,-1,0.-1,-1,用 2 表示 -1 后得到 1120.22。 给定一个十进制有理数,请将其转换为对应的平衡三进制数。 输入格式 在一行中输入两个整数 A、B,用一个空格分隔,表示十进制数 A / B。 保证 B 是 3 的自然数次幂,即存在非负整数 k 使得 B = 3^k。 输出格式 在一行中输出对应的平衡三进制数,用 2 表示 -1。 输出应为最简形式:整数部分没有多余的前导 0,小数点之后没有多余的后缀 0。例如,01000 应输出为 1000,0.111100 应输出为 0.1111。 数据范围 对于全部数据,-10^9 <= A <= 10^9,1 <= B <= 10^9,且 B 是 3 的自然数次幂。 输入样例1 8 1 输出样例1 102 输入样例2 293 9 输出样例2 1120.22 输入样例3 8 9 输出样例3 1.02