受到这个问题的启发,这个问题进一步启发了这个问题,编写了一个程序,该程序采用两个整数并将其以独特的方式相加,方法是对用于在7段显示器中显示它们的段执行“或”运算。供参考,数字以以下方式表示:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
请注意,1使用右侧的两个段,而不是左侧的两个段。有两种可以用这种方式产生的特殊字符,它们不是数字。请参阅以下附加表:
| 0 1 2 3 4 5 6 7 8 9
--+--------------------
0 | 0 0 8 8 8 8 8 0 8 8
1 | 0 1 a 3 4 9 8 7 8 9
2 | 8 a 2 a 8 8 8 a 8 8
3 | 8 3 a 3 9 9 8 3 8 9
4 | 8 4 8 9 4 9 8 Q 8 9
5 | 8 9 8 9 9 5 6 9 8 9
6 | 8 8 8 8 8 6 6 8 8 8
7 | 0 7 a 3 Q 9 8 7 8 9
8 | 8 8 8 8 8 8 8 8 8 8
9 | 8 9 8 9 9 9 8 9 8 9
有用的意见:
- 任何数字加自身等于自身
- 8加任何数字等于8
- 2加1、3或7等于字母“ a”(必须为小写)
- 4加7等于“ q”或“ Q”,由您选择
- 数字应右对齐,因此数字应从右向左添加。如果一个数字比另一个数字多,则开头的多余数字应保持不变。除非数字正好为0,否则没有前导0。
- 所有数字均为0或更大。您无需处理“-”号。(主要是因为'-'和'1'或'7'的总和不适合。)
您的程序应接受2个您选择的任何格式的整数,并以这种方式计算时输出包含其“和”的字符串。这是代码高尔夫球,因此您的程序应尽可能小。
例子:
- 输入:12345、123。输出:12389
- 输入:88888、42。输出:88888
- 输入:0、23。输出:28
- 输入:120、240。输出:a80
- 输入:270、42。输出:2Q8(或2q8)
- 输入:1234567890、1234567890。输出:1234567890
4
有趣的挑战,但这可能会使用一些测试用例,以便人们可以验证其答案。
—
AdmBorkBork,2016年
不应该
—
路易斯Mendo
Q
是小写吗?实际形状看起来像q
,而不是一个Q
输入的整数将是个位数,有限位数还是无限制?
—
Digital Trauma
@LuisMendo-我想它可以任意选择。我将由您自行决定。在
—
Darrel Hoffman
a
绝对应该情况下,虽然低,因为A
看起来完全不同。
@Adám-是的,我考虑过这一点,但认为并不是每个人都可以使用他们选择的高尔夫语言访问Unicode字符,因此指望他们能够处理这是不公平的。
—
Darrel Hoffman