Python 中的康奈爾序列


假設我們有一個數字 n,我們需要找出康奈爾序列的第 n 項。康奈爾序列如下: 1. 取第一個奇數:1 2. 取接下來的兩個偶數 2、4 3. 然後取接下來的三個奇數 5、7、9 4. 然後取接下來的四個偶數 10、12、14、16 依次類推。

因此,如果輸入為 12,則輸出為 21

為了解決這個問題,我們將按照以下步驟操作 −

  • i := 1
  • 當 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

更新日期: 22-Sep-2020

447 次瀏覽

開啟你的 職業生涯

完成課程,取得認證

開始
廣告
© . All rights reserved.