编写尽可能最短的函数,其中包含两个二进制编码十进制整数和一个指示执行和返回结果的算术操作的字符。
输入规格
您将被传递两个代表无符号BCD整数的32位位模式。例如,在C或Java中,您将被传递一个int (如果您愿意的话,unsigned)。函数的第三个参数将是一个字符,表示要执行的操作。如果您的语言需要固定的返回大小,则返回32位结果并忽略溢出。您的返回值也应该编码为BCD。
您应该支持+、-、*、/和%。对于减法,第一个参数是分钟,第二个参数是减法。对于除法和模,第一个参数是商,第二个参数是除数。
bcd(0x00000127, 0x00000003, '+') => 0x00000130 // NOT 0x0000012A发布于 2011-02-11 02:20:09
bcd=lambda*a:"0x%08d"%eval("%x%s%x"%(a*2)[::2])测试
>>> print bcd(0x00000127, 0x00000003, '+')
0x00000130
>>> print bcd(0x00000127, 0x00000003, '*')
0x00000381
>>> print bcd(0x00000127, 0x00000003, '/')
0x00000042
>>> print bcd(0x00000127, 0x00000003, '-')
0x00000124发布于 2017-11-29 06:10:41
(a,b,y)=>0|'0x'+~~eval([a,b].map(t=>+t.toString(16)).join(y))https://codegolf.stackexchange.com/questions/844
复制相似问题