Задания
Версия для печати и копирования в MS Word
Тип 5 № 85718
i

На вход ал­го­рит­ма подаётся на­ту­раль­ное число N. Ал­го­ритм стро­ит по нему новое число R сле­ду­ю­щим об­ра­зом.

1.  Стро­ит­ся тро­ич­ная за­пись числа N.

2.  Далее эта за­пись об­ра­ба­ты­ва­ет­ся по сле­ду­ю­ще­му пра­ви­лу:

а)  если число N де­лит­ся на 3, то к этой за­пи­си спра­ва до­пи­сы­ва­ют­ся две по­след­ние тро­ич­ные цифры по­лу­чен­ной за­пи­си;

б)  если число N на 3 не де­лит­ся, то вы­чис­ля­ет­ся сумма цифр по­лу­чен­ной тро­ич­ной за­пи­си, эта сумма умно­жа­ет­ся на 3, пе­ре­во­дит­ся в тро­ич­ную си­сте­му счис­ле­ния и до­пи­сы­ва­ет­ся в конец числа.

По­лу­чен­ная таким об­ра­зом за­пись яв­ля­ет­ся тро­ич­ной за­пи­сью ис­ко­мо­го числа R.

3.  Ре­зуль­тат пе­ре­во­дит­ся в де­ся­тич­ную си­сте­му и вы­во­дит­ся на экран.

На­при­мер, для ис­ход­но­го числа 8 = 223 ре­зуль­та­том яв­ля­ет­ся число 221103  =  228, а для ис­ход­но­го числа 9  =  1003 ре­зуль­та­том яв­ля­ет­ся число 100003  =  81.

Ука­жи­те число R, бли­жай­шее к 910, ко­то­рое может быть по­лу­че­но с по­мо­щью опи­сан­но­го ал­го­рит­ма. В от­ве­те за­пи­ши­те это число в де­ся­тич­ной си­сте­ме счис­ле­ния.

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

def f(n):

s=''

while n > 0:

s = str(n%3) + s

n //= 3

return s

 

def summac(x):

t = 0

while x > 0:

t += x%10

x //= 10

return t

 

c = []

for n in range(10, 1000):

s = f(n)

if n%3 == 0:

s = s + s[-2:]

else:

s = s + f(summac(int(s)) * 3)

r = int(str(s),3)

#Если число число не будет най­де­но, уве­ли­чи­ва­ем сла­га­е­мое 50

if 910 - 50 <= r <= 910 + 50:

c.append(r)

print(c)

 

Ответ: 921.