Advertisement
filashkov

Untitled

Mar 11th, 2020
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.95 KB | None | 0 0
  1. def c(n, k):
  2.     if (n < k):
  3.         return 0
  4.     print("bias = ", n * (n + 1) // 2 + k)
  5.     return a[n * (n + 1) // 2 + k]
  6.  
  7. n = 32
  8.  
  9. a = []
  10. a.append(1)
  11.  
  12. for i in range(n):
  13.     a.append(1)
  14.     for j in range(i):
  15.         a.append(a[i * (i + 1) // 2 + j] + a[i * (i + 1) // 2 + j + 1])
  16.     a.append(1)
  17.  
  18. #print(a)
  19.  
  20. number = []
  21.  
  22. N, k = map(int, input().split())
  23.  
  24. for i in range(32):
  25.     number.append((N // (2 ** (31 - i))) % 2)
  26.  
  27. print(number)
  28.  
  29. answer = 0
  30. i = 0
  31. while True:
  32.     if (number[i] == 0):
  33.         i += 1
  34.     else:
  35.         break
  36.  
  37. print("ha")
  38. print(i)
  39.  
  40. n = 30 - i
  41.  
  42. answer += c(n + 1, k + 1)
  43.  
  44. print("ha")
  45. print(answer)
  46.  
  47. i = 0
  48. while True:
  49.     if (number[i] == 0):
  50.         i += 1
  51.     else:
  52.         break
  53.  
  54. i += 1
  55. for j in range(i, 32):
  56.     if (number[j] == 0):
  57.         k -= 1
  58.         if (k == 0):
  59.             answer += 1
  60.             break
  61.     else:
  62.         answer += c(32 - j - 1, k - 1)
  63. print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement