Python中的康奈尔序列

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

因此,如果输入为12,则输出为21

为了解决这个问题,我们将遵循以下步骤-

  • i := 1

  • while quotient of (i *(i + 1) / 2) < n + 1, do

    • i := i + 1

  • idx := i *(i + 1) / 2, take only quotient

  • num := i^2

  • return 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