Thinking Process
可以將數字從 1 開始分群:(1, 2, 3, …, n - 1, n) (n + 1, n + 2, …, 2n - 1, 2n) …
每一群都有 n - 1 個數字是 not divisible by n,所以要求第 k 個 not divisible by n 的數字,可用以下公式:
n−1k⋅n+kmod(n−1)
不過有些要注意的:
- 當
k % (n - 1) == 0
代表剛好有 k / (n -1)
群數字,例如 n = 4, k = 12
,所以結果要減一
- 當
k <= n - 1
,代表連第一群當數不滿,所以答案就是 k
Code
Time Complexity: O(1), Space Complexity: O(1)
Source