Python 中的康奈尔序列

pythonserver side programmingprogramming更新于 2025/12/25 15:40:17

假设我们有一个数字 n,我们必须找到康奈尔序列的第 n 项。康奈尔 序列如下:1. 取第一个奇数:1 2. 取接下来的两个偶数 2、4 3. 然后取接下来的三个奇数 5、7、9 4. 之后取接下来的四个偶数 10、12、14、 16 等等。

因此,如果输入是 12,则输出将是 21

要解决这个问题,我们将遵循以下步骤 −

  • i := 1
  • while quotient of (i *(i + 1) / 2) < n + 1,执行
    • i := i + 1
  • idx := i *(i + 1) / 2,仅取商
  • num := i^2
  • 返回 num - 2 *(idx - n - 1)

让我们看看下面的实现以便更好地理解 −

示例

class Solution:
   def solve(self, n):
      i = 1
      while (i * (i + 1) // 2) < n + 1:
         i += 1
      idx = i * (i + 1) // 2
      num = i**2
   return num - 2 * (idx - n - 1)
ob = Solution()
print(ob.solve(12))

输入

12

输出

21

相关文章


有用资源