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

Ав­то­мат по­лу­ча­ет на вход трёхзнач­ное число. По этому числу стро­ит­ся новое число по сле­ду­ю­щим пра­ви­лам.

1.  Скла­ды­ва­ют­ся пер­вая и вто­рая, а также вто­рая и тре­тья цифры ис­ход­но­го числа.

2.  По­лу­чен­ные два числа за­пи­сы­ва­ют­ся друг за дру­гом в по­ряд­ке убы­ва­ния (без раз­де­ли­те­лей).

При­мер. Ис­ход­ное число: 348. Суммы: 3 + 4 = 7; 4 + 8 = 12. Ре­зуль­тат: 127. Ука­жи­те наи­мень­шее число, в ре­зуль­та­те об­ра­бот­ки ко­то­ро­го ав­то­мат вы­даст число 157.

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

Ре­ше­ние.

Пусть 7 = 6 + 1, тогда 15 вы­год­но раз­бить на сумму чисел 6 и 9. Наи­мень­шее ис­ход­ное число, удо­вле­тво­ря­ю­щее усло­ви­ям за­да­чи: 169.

 

Ответ: 169.

 

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

for i in range(100, 1000):

s = str(i)

k1 = int(s[0]) + int(s[1])

k2 = int(s[1]) + int(s[2])

first = str(max(k1, k2))

second = str((min(k1, k2)))

s1 = first + second

if s1 == '157':

print(i)

break

 

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

uses School;

begin

var tt := 157;

for var i := 100 to 999 do begin

var (a, b, c) := i.Digits; // сотни, де­сят­ки, еди­ни­цы

var (s1, s2) := (a + b, b + c);

var res := s1>s2 ? s1.ToString+s2 : s2.ToString+s1;

if res.ToInteger = tt then begin

Print(i);

break;

end;

end;

end.


Аналоги к заданию № 7663: 7690 7917 7982 ... Все

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