真正的(悲惨的)灵感为您带来了挑战。最近,键盘上的数字行有些零星。按键1-9
有时可以工作-但其他时候则无济于事。作为一个狂热的程序员,这太可怕了!(看到那个感叹号吗?这就是您知道它们现在正在起作用的方式。)我不仅经常需要数字本身,而且还需要符号!@#$%^&*(
也是完全无效的一半!作为一名C程序员,我对解决这个问题更感兴趣,而不是花时间在忙于编写代码以修复笔记本电脑的忙碌工作上。在过去的几周中,慢慢地,我的代码中的所有数字文字都被替换为十六进制,这样我就不必四处寻找要复制和粘贴的数字。但是,如果没有数字键,有些数字很难输入1-9
。例如,数字1
不能这么简单地以十六进制形式编写,因此1
我将代码中的s 替换为0xF - 0xE
。受影响的唯一键1-9
,所以我保持充分利用像符号+
,-
和/
。但是,我不能使用乘法或括号,因为*
并且(
经常被打破。这导致了您的挑战。
输入项
一个整数,n
以stdin或您的语言等效。如果需要,该整数可以在换行符或其他空白字符之前或之后。或者,您可以通过命令行参数接收输入。
您的程序应正确响应负输入,并且至少可以处理32位带符号整数。
输出量
您的程序应以某种可观察的形式输出最短的(以非空白字符表示)可能的方式,以n
一个或多个十六进制值的和,差或除的形式写入数字。解决此问题的方法不止一种,并且没有要求您偏爱任何等长输出的要求。
输出应采用以下形式:A % A % A...
where A
是一个0x
仅包含数字的十六进制值A-F a-f
,并且%
是符号之一-+/
。让我们/
描述整数除法,而不是浮点数。
(请注意n
,按照惯例,当首先评估从左到右的除法,然后是从左到右的加法和减法时,输出结果应该是。)
测试用例
输入输出
1
0xF - 0xE
(或0xF-0xE
或0xB-0xA
或0xd - 0xc
或0xF/0xF
)15
0xF
255
0xFF
30
0xF + 0xF
计分和规则
这是代码高尔夫球。您的初步得分是源文件中的字节数。
您不得使用来源中的任何数字1-9
。
您可以!@#$%^&*(
在来源中使用符号,但是每个符号的得分都会受到+20的惩罚。
您的程序可以由带有n
参数的函数代替,只要该函数产生某种形式的可读输出即可。函数的返回值不计为输出。
不允许出现标准漏洞。
最低分获胜!祝好运!
我是否在格式化/查询/明晰度方面搞砸了?让我知道!这是我第一次提交该网站!