ИНФОРМАТИКА! ПОМОГИТЕ ПРОШУ! Автомат получает ** вход трехзначное число. По этому числу...

0 голосов
842 просмотров

ИНФОРМАТИКА! ПОМОГИТЕ ПРОШУ!
Автомат получает на вход трехзначное число. По этому числу строится новое число по следующим правилам:
1) складывается первая и вторая а также вторая и третья цифры исходного числа 2)полученные два числа записываются друг за другом в порядке убывания(без разделителей)
Пример. Исходное число 348. Суммы:3+4=7 4+8=12. Результат:127.
Сколько существует чисел в результате обработки которых автомат выдаст число 1715?


Информатика (38 баллов) | 842 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

1. Рассмотрим вариант построения числа 1715 при условии a+b=17, b+c=15.
Число 17 можно получить только двумя способами: 9+8=17 и 8+9=17.
Отсюда получаем два варианта: (a=9; b=8) и (a=8; b=9).         (1)
Число 15 можно получить тоже двумя способами, полагая, что одно из слагаемых (b) равно 8 или 9: 9+6 и 8+7, что тоже дает два варианта: (b=9; c=6) и (b=8; c=7).                                                                          (2)
Объединяя (1) и (2) получаем (a=9; b=8; c=7) и (a=8; b=9; c=6), т.е. у нас по-прежнему есть два варианта решения.
2. Теперь рассмотрим вариант построения числа 1715 при условии a+b=15, b+c=17 и упорядочения 17, 15 по убыванию. Легко видеть, что решение будет "симметричным": (a=7; b=8; c=9) и (a=6; b=9; c=8) и это также даст нам два варианта.
3. Объединяя результат получаем, что всего имеется четыре решения, т.е. четыре числа (698, 789, 896, 987).
Ответ: 4 числа.

Проверка решения программным путем (Borland Pascal 7.0)
uses Crt;
var
  a,b,c,ab,bc,t,k:byte;
  s1,s2:string;
begin
  ClrScr;
  k:=0;
  for a:=0 to 9 do
  for b:=0 to 9 do
  for c:=0 to 9 do
  begin
    ab:=a+b; bc:=b+c;
    if ab    Str(ab,s1); Str(bc,s2);
    if s1+s2='1715' then begin WriteLn(a,b,c); Inc(k) end
  end;
  Writeln('kol-vo=',k);
  ReadKey
end.

Результат выполнения программы:
698
789
896
987
kol-vo=4

(142k баллов)