Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def c(n, k):
- if (n < k):
- return 0
- print("bias = ", n * (n + 1) // 2 + k)
- return a[n * (n + 1) // 2 + k]
- n = 32
- a = []
- a.append(1)
- for i in range(n):
- a.append(1)
- for j in range(i):
- a.append(a[i * (i + 1) // 2 + j] + a[i * (i + 1) // 2 + j + 1])
- a.append(1)
- #print(a)
- number = []
- N, k = map(int, input().split())
- for i in range(32):
- number.append((N // (2 ** (31 - i))) % 2)
- print(number)
- answer = 0
- i = 0
- while True:
- if (number[i] == 0):
- i += 1
- else:
- break
- print("ha")
- print(i)
- n = 30 - i
- answer += c(n + 1, k + 1)
- print("ha")
- print(answer)
- i = 0
- while True:
- if (number[i] == 0):
- i += 1
- else:
- break
- i += 1
- for j in range(i, 32):
- if (number[j] == 0):
- k -= 1
- if (k == 0):
- answer += 1
- break
- else:
- answer += c(32 - j - 1, k - 1)
- print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement