Python中的康奈尔序列
假设我们有一个数字n,我们必须找到Connell序列的第n个项。Connell序列如下:1.取第一个奇数整数:12.取下两个奇数整数2,43.然后取下三个奇数整数5、7、94。之后取下四个偶数整数10,12、14、16等。
因此,如果输入为12,则输出为21
为了解决这个问题,我们将遵循以下步骤-
i:=1
whilequotientof(i*(i+1)/2)<n+1,do
i:=i+1
idx:=i*(i+1)/2,takeonlyquotient
num:=i^2
returnnum-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