Рюмка+рюмка=авария Решить при помощи программы ** паскале

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

Рюмка+рюмка=авария
Решить при помощи программы на паскале


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

Задачу решается вот таким жутким перебором (который, если немного подумать можно ещё сократить):
//Рюмка+рюмка=авария
var a,b,c,d,e,f,g,h:integer;
begin
for a:=1 to 9 do  //р
 for b:=0 to 9 do  //ю
  if (b<>a) then
   for c:=0 to 9 do  //м
    if (c<>a)and(c<>b) then
     for d:=0 to 9 do  //к
      if (d<>a)and(d<>b)and(d<>c) then
       for e:=1 to 1 do  //а
        if (e<>a)and(e<>b)and(e<>c)and(e<>d) then
         for f:=0 to 9 do //в
          if (f<>a)and(f<>b)and(f<>c)and(f<>d)and(f<>e)then
           for g:=0 to 9 do  //и
            if (g<>a)and(g<>b)and(g<>c)and(g<>d)and(g<>e)and(g<>f)then
             for h:=2 to 2 do  //я
              if (h<>a)and(h<>b)and(h<>c)and(h<>d)and(h<>e)and(h<>f)and(h<>g)then
               if 2*(a*10000+b*1000+c*100+d*10+e)=e*100000+f*10000+e*1000+a*100+g*10+h then
                writeln(a*10000+b*1000+c*100+d*10+e,' ',e*100000+f*10000+e*1000+a*100+g*10+h);
end.

Результат:
85931 171862

(194k баллов)