def counting_bits(n): result = [0] * (n + 1) if n == 0: return result result[0] = 0 result[1] = 1 for x in range(2, n + 1): if x % 2 == 0: result[x] = result[x // 2] else: result[x] = result[x // 2] + 1 return result # Driver code def main(): input_bits = [1, 2, 3, 4, 5, 10] for i in range(len(input_bits)): print(i + 1, ".\t Bits: ", input_bits[i], sep="") print("\t Counting bits: ", counting_bits(input_bits[i]), sep="") print("-" * 100) if __name__ == '__main__': main()