Guest User

Untitled

a guest
Apr 26th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. package main
  2. func max(a, b int) int {
  3. if a > b {
  4. return a
  5. }
  6. return b
  7. }
  8. func addBinary(a string, b string) string {
  9. sa, sb := []byte(a), []byte(b)
  10. la, lb := len(a), len(b)
  11. for i := 0 ; i < la / 2 ; i++ {
  12. sa[i], sa[la - i - 1] = sa[la - i - 1], sa[i]
  13. }
  14. for i := 0 ; i < lb / 2 ; i++ {
  15. sb[i], sb[lb - i - 1] = sb[lb - i - 1], sb[i]
  16. }
  17. if la < lb {
  18. la, lb = lb, la
  19. sa, sb = sb, sa
  20. }
  21. for i := 0 ; i < la ; i++ {
  22. sa[i] = sa[i] - byte('0')
  23. }
  24. for i := 0 ; i < lb ; i++ {
  25. sb[i] = sb[i] - byte('0')
  26. }
  27. for i := 0 ; i < lb ; i++ {
  28. sa[i] += sb[i]
  29. }
  30. for i := 0 ; i < la - 1 ; i++ {
  31. if sa[i] >= 2 {
  32. sa[i] -= 2
  33. sa[i + 1]++
  34. }
  35. }
  36. if sa[la - 1] >= 2 {
  37. sa[la - 1] -= 2
  38. sa = append(sa, byte(1))
  39. la++
  40. }
  41. for i := 0 ; i < la / 2 ; i++ {
  42. sa[i], sa[la - i - 1] = sa[la - i - 1], sa[i]
  43. }
  44. for i := 0 ; i < la ; i++ {
  45. sa[i] = sa[i] + byte('0')
  46. }
  47. return string(sa)
  48. }
  49.  
  50. func main() {
  51. }
Add Comment
Please, Sign In to add comment