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

Ис­пол­ни­тель КАЛЬ­КУ­ЛЯ­ТОР имеет толь­ко две ко­ман­ды, ко­то­рым при­сво­е­ны но­ме­ра:

 

1. при­бавь 1

2. умножь на 2

 

Вы­пол­няя ко­ман­ду номер 1, КАЛЬ­КУ­ЛЯ­ТОР при­бав­ля­ет к числу на экра­не 1, а вы­пол­няя

ко­ман­ду номер 2, умно­жа­ет число на экра­не на 2. Ука­жи­те ми­ни­маль­ное число ко­манд, ко­то­рое дол­жен вы­пол­нить ис­пол­ни­тель, чтобы по­лу­чить из числа 23 число 999.

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

Ре­ше­ние.

Умно­же­ние на число об­ра­ти­мо не для лю­бо­го числа, по­это­му, если мы пойдём от числа 999 к числу 23, тогда од­но­знач­но вос­ста­но­вим про­грам­му с ми­ни­маль­ным чис­лом ко­манд. По­лу­чен­ные ко­ман­ды будут за­пи­сы­вать­ся спра­ва на­ле­во.

 

1)  Число 999 не де­лит­ся на 2, зна­чит, оно по­лу­че­но при­бав­ле­ни­ем еди­ни­цы к числу 998: 999 = 998 + 1 (ко­ман­да 1).

 

2)  Т. к. мы хотим по­лу­чить ми­ни­маль­ное число ко­манд, то для по­лу­че­ния числа 998 нужно ис­поль­зо­вать умно­же­ние: 998 = 499 * 2 (ко­ман­да 2).

 

Далее, если число чётное, при­ме­ня­ем рас­суж­де­ние 2), если нечётное  — рас­суж­де­ние1), по­это­му:

499 = 498 + 1 (ко­ман­да 1);

498 = 249 * 2 (ко­ман­да 2);

249 = 248 + 1 (ко­ман­да 1);

248 = 124 * 2 (ко­ман­да 2);

124 = 62 * 2 (ко­ман­да 2);

62 = 31 * 2 (ко­ман­да 2);

31 = 30 + 1 (ко­ман­да 1).

 

За­ме­тим, что далее мы не можем при­ме­нять рас­суж­де­ние 2), по­то­му что 30 = 15 * 2, а 15 < 23, т.  е. мень­ше на­чаль­но­го числа. А по­сколь­ку мы не имеем ко­ман­ды вы­чи­та­ния, то и по­лу­чить число 15 не можем. Сле­до­ва­тель­но, 30 = 23 + 7 (7 раз при­ме­ни­ли ко­ман­ду 1).

 

Таким об­ра­зом, для по­лу­че­ния из числа 23 числа 999 не­об­хо­ди­мо при­ме­нить сле­ду­ю­щую по­сле­до­ва­тель­ность ко­манд: 1111111122212121. Счи­та­ем ко­ли­че­ство ко­манд и по­лу­ча­ем ответ: 16.

Ответ: 16.

Раздел кодификатора ФИПИ: 1.6.3 По­стро­е­ние ал­го­рит­мов и прак­ти­че­ские вы­чис­ле­ния