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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP