Алгоритм вычисления значения функции F(n), где n – целое число, задан следующими соотношениями: F(0) = 0 F(n) = F(n/2) + 3, при чётном n > 0 F(n) = 2·F(n - 1) + 1, при нечётном n > 0 Сколько различных значений может принимать функция F(n) при n, принадлежащих отрезку [1; 1000]?
Да, все правильно, ровно 1000 значений, ведь они соответствуют условию n>0
aboba=[]
def F(n):
global aboba
if n==0:
return 0
elif n>0 and n%2==0:
return F(n/2)+3
elif n>0 and n%2==1:
return 2*F(n-1)+1
count=0
for i in range(1,1001):
aboba.append(F(i))
print(len(set(aboba)))