任务
本关任务是实现ZhenToFan(z)
函数,其功能是将给定的真实值z
转换成 8 位反码,参数和返回值要求与上关相同,即:
1)参数z
是长度不超过 8 的字符串,表示的是一个二进制整数;
2)z
对应的真实值的符号可能是+
或-
,也可能没有,如没有,表示是正数,如'-1001'
、'+101'
、'101'
都是z
可能的取值;
3)函数的返回值是字符串类型,表示真实值z
对应的 8 位反码。
N = 8 #位数为8
########## Begin ##########
def ZhenToYuan(z):
if z[0] not in ['+', '-']:
z='+' + z
y='0' if (z[0]=='+') else '1'
y=y+'0'*(N-len(z))
y=y+z[1:len(z)]
return y
def reverse(y):
f=y[0]
for x in y[1:len(y)]:
if x=='1':
f=f+'0'
else:
f=f+'1'
return f
def ZhenToFan(z):
y=ZhenToYuan(z)
if y[0]=='0':
return y
else:
return reverse(y)
########## End ##########
z = input() #真实值
f = ZhenToFan(z) #转换成8位反码
print('%s -> %s' % (z, f))
核心思想:将复杂的问题先分解成简单的问题,将简单问题解决后再将其拼装。