Я пытаюсь написать программу для решения этого шаблона и получить значение в nth позиции ( n варьируется от 1 до 10 ^ 5 )
1,2,7,20,61,182 ... Ссылка
Я смог написать функцию для этого. Но продолжайте получать
OverflowError: cannot convert float infinity to integer
ошибка для большего n ввода происходит в py3 . Но он отлично работает в py2 .
def getPattern(n):
total = 2
tmptotal = 1
count = 2
if(n == 1 or n == 2):
print(n)
else:
for i in range(2, n):
if(count == 2):
total = (total + (total/2))*2 + 1
count = 1
else:
total = (total + ((total-1)/2))*2
count = 2
tmptotal = total
return int(total)
n =int(input())
print(getPattern(n))
Итак, я надеюсь решить эту ошибку в py3 env.