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

Все трёхбук­вен­ные слова, со­став­лен­ные из букв П, А, Р, У, С, за­пи­са­ны в ал­фа­вит­ном по­ряд­ке и про­ну­ме­ро­ва­ны, на­чи­ная с 1. На­ча­ло спис­ка вы­гля­дит так:

1.  ААА

2.  ААП

3.  ААР

4.  ААС

5.  ААУ

6.  АПА

...

 

Под каким но­ме­ром в спис­ке идёт пер­вое слово, ко­то­рое на­чи­на­ет­ся с буквы С?

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

Ре­ше­ние.

За­ме­ним буквы на цифры сле­ду­ю­щим об­ра­зом: А  — 0, П  — 1, Р  — 2, С  — 3, У  — 4. По­лу­ча­ем спи­сок:

1.  000

2.  001

3.  002

4.  003

5.  004

6.  010

...

 

Для на­хож­де­ния пер­во­го слова, ко­то­рое на­чи­на­ет­ся с буквы С, нам нужно найти номер САА, то есть 300. По­сколь­ку ис­поль­зу­ет­ся пя­ти­бук­вен­ный ал­фа­вит, нужно найти зна­че­ние числа 3005 в де­ся­тич­ном виде. Им яв­ля­ет­ся число 75, но так как номер в нашем спис­ке на одну еди­ни­цу боль­ше са­мо­го числа, то оста­ет­ся до­ба­вить еди­ни­цу. По­лу­ча­ем 76.

 

Ответ: 76.

 

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

a = {0: "А", 1: "П", 2: "Р", 3: "С", 4: "У"}

k = 0

for i in range(0, len(a)):

for j in range(0, len(a)):

for g in range(0, len(a)):

k += 1

if a[i] == 'С':

print(k) # Возьмём пер­вое число, ко­то­рое вы­даст про­грам­ма

break

 

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

from itertools import product

for i, p in enumerate(product(sorted('ПАРУС'), repeat=3)):

if p[0] == 'С':

print(i+1)

break

 

При­ведём ре­ше­ние Сер­гея Донец на языке PascalABC.NET.

begin

('ПАРУС'.Sorted.Cartesian(3)

.Select(s -> s.JoinToString)

.ToArray

.FindIndex(s -> s[1] = 'С') + 1).Print;//76

end.


Аналоги к заданию № 14696: 14771 15132 Все

Источник: Стат­Град: Тре­ни­ро­воч­ная ра­бо­та 28.11.2017 ИН10203
Раздел кодификатора ФИПИ: 1.6.1 Фор­ма­ли­за­ция по­ня­тия ал­го­рит­ма