Counter operation sequences

Write codeMedium14 min

Your task

A counter starts at 1. In one operation you either add 1 to it or double it. Count the distinct sequences of operations that turn 1 into exactly n (n >= 1). Two sequences are different if they differ anywhere, even when they pass through the same values, for example, reaching 2 by adding 1 and reaching 2 by doubling are two different sequences. Return the count; n = 1 gives 1 (the empty sequence).

Examples

count_counter_paths(n: int) -> int
Example 1
Inputcount_counter_paths(4)
Output4
Example 2
Inputcount_counter_paths(6)
Output6