假设存在一个正整数列表U,第一个元素
U[0]
是数字1。并且对于列表中任意一个元素x
,满足计算公式:y=2*x+1
和z=3*x+1
的y
和z
的值都存在于列表中。列表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