牛客刷题:字符串加法(编程题)

题目描述:
输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。
如"1101", “1100”,输出:11001

解答:
def fanzhuan(n):
 sum=0
 k=0
 while n>0:
  sum=sum+(n%10)*(2**k)
  k+=1
  n=n//10
 return sum

def shizhuaner(m):
 arr=[]
 while m>0:
  arr.append(m%2)
  m=m//2
 arr.reverse()
 return arr

if name==“main”:
 a,b=map(str,input().strip().split(" “))
 sum1 = fanzhuan(int(a))
 sum2 = fanzhuan(int(b))
 sum=sum1+sum2
 res=shizhuaner(sum)
 for i in res:
  print(i,end=”")

总结:
1.这道题我用到两个自定义函数,一个用来十进制转二进制,另一个二进制转十进制。
2.需要注意的是reverse()函数用在列表里,不可以用在字符串上。

你可能感兴趣的:(牛客)