【每日一题0821】线性列表

:woman_mage:假设存在一个正整数列表U,第一个元素U[0] 是数字1。并且对于列表中任意一个元素x ,满足计算公式:y=2*x+1z=3*x+1yz 的值都存在于列表中。列表U的值默认按照从小到大的顺序排列,并且没有重复值。

解释:U = [1, 3, 4, 7, 9, 10, 13, 15, 19, 21, 22, 27, ...] ,其中由数字1可以得到3和4,由3得到7和10,由4得到9和13,以此类推。

我们的任务是,编写一个python函数double_linear(n:int) ,求出列表U中索引是n 的数值。例如double_linear(10) 应当返回22

题目难度:中等
题目来源:codewars

def double_linear(n:int) -> int:
    pass

assert double_linear(10) == 22
assert double_linear(20) == 57
assert double_linear(30) == 91
assert double_linear(50) == 175