SP21169 TAP2014B - Balanced base-3

题目描述

历史上,已经发展出许多种计数系统。其中,有些系统如罗马数字,由于不够方便,几乎已被淘汰。而其他更独特的系统,如用于排列编号的阶乘数,仅在特定领域中应用。今天,我们要探讨一种叫做「平衡三进制」的计数系统,这种系统常自然出现于分析平衡秤相关的数学问题中。 平衡三进制与我们熟悉的十进制或其他进制系统相似,因为它都属于「位置计数法」。位置计数法中,数字的位置决定了其对应基数的幂。例如,在十进制中,数字 123 可表示为: 123 = **1** × 10 $ ^{2} $ + **2** × 10 $ ^{1} $ + **3** × 10 $ ^{0} $ 。 在标准位置计数系统中,允许的数字范围是从 0 到 **B-1**,这里的 **B** 是系统的基数。因此,十进制的 123 在标准三进制中可以写为 **"11120"**,因为 **1** × 3 $ ^{4} $ + **1** × 3 $ ^{3} $ + **1** × 3 $ ^{2} $ + **2** × 3 $ ^{1} $ + 0 × 3 $ ^{0} $ = 123。 平衡三进制与标准三进制的区别在于,平衡三进制系统允许的数字是 0、**1** 和 **-1**,我们分别用 **'0'**、**'+'** 和 **'-'** 表示。所以,十进制的 123 用平衡三进制表示则为 **"+----0"**,其计算过程为: **1** × 3 $ ^{5} $ + (**-1**) × 3 $ ^{4} $ + (**-1**) × 3 $ ^{3} $ + (**-1**) × 3 $ ^{2} $ + (**-1**) × 3 $ ^{1} $ + 0 × 3 $ ^{0} $ = 123。 从十进制转换到平衡三进制虽然过程比较机械且繁琐,但相对简单。因此,我们需要编写一个程序来帮我们做这个转换。你能完成这个任务吗?

输入格式

第一行包含一个整数 **T**,表示测试用例的个数(1 ≤ T ≤ 100)。接下来是 **T** 个测试用例。 每个测试用例由一行组成,包含一个正整数 **N**,代表我们要转换成平衡三进制的十进制数(1 ≤ N ≤ 1000)。

输出格式

对每个测试用例,输出一行,由字符 **'0'**、**'+'** 和 **'-'** 组成的字符串,不以 **'0'** 开头,表示数字 **N** 在平衡三进制下的唯一表示。 **本翻译由 AI 自动生成**