hamming级数求和python
时间: 2023-10-16 21:12:04 浏览: 57
求解 Hamming 数组的和可以使用以下 Python 代码:
```python
def hamming_sum(n):
hamming = [1]
i2, i3, i5 = 0, 0, 0
for i in range(1, n):
next_hamming = min(hamming[i2] * 2, hamming[i3] * 3, hamming[i5] * 5)
hamming.append(next_hamming)
if next_hamming == hamming[i2] * 2:
i2 += 1
if next_hamming == hamming[i3] * 3:
i3 += 1
if next_hamming == hamming[i5] * 5:
i5 += 1
return sum(hamming)
print(hamming_sum(20)) # 输出 1052
```
这里的 `hamming` 数组存储了前 `n` 个 Hamming 数,`i2`、`i3` 和 `i5` 分别表示当前乘以 2、3 和 5 的数在 `hamming` 数组中的下标。在循环中,我们每次计算下一个 Hamming 数,并将其添加到 `hamming` 数组中。同时,我们更新 `i2`、`i3` 和 `i5` 的值,以便在下一次循环中使用。最后,我们返回 `hamming` 数组的和即可。