Skip to content

How to Find the Row of the Odd Triangle in Python

The challenge

Given a triangle of consecutive odd numbers:

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 ...
Code language: plaintext (plaintext)

find the triangle’s row knowing its index (the rows are 1-indexed), e.g.:

odd_row(1) == [1] odd_row(2) == [3, 5] odd_row(3) == [7, 9, 11]
Code language: plaintext (plaintext)

Note: your code should be optimized to handle big inputs.

The solution in Python code

Option 1:

def odd_row(n): m = (n - 1) * n + 1 return [*range(m, m + n * 2, 2)]
Code language: Python (python)

Option 2:

def odd_row(n): return [x for x in range(n**2-n+1, (n+1)**2-n,2)]
Code language: Python (python)

Option 3:

odd_row = lambda n:list(range(n*(n-1)+1,n*(n+1),2))
Code language: Python (python)

Test cases to validate our solution

test.assert_equals(odd_row(1), [1]) test.assert_equals(odd_row(2), [3, 5]) test.assert_equals(odd_row(13), [157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181]) test.assert_equals(odd_row(19), [343, 345, 347, 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, 379]) test.assert_equals(odd_row(41), [1641, 1643, 1645, 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1665, 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705, 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721])
Code language: Python (python)

See also  How to disable text selection highlighting in CSS
Tags:
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x