РЕБУС FORTY+TEN+TEN=SIXTYНапишите, пожалуйста, программку для расшифровки на паскале.

РЕБУС FORTY+TEN+TEN=SIXTY
Напишите, пожалуйста, программку для расшифровки на паскале.

Задать свой вопрос
Семик
Написать необходимо Программку
2 ответа
Программка - в прилагаемом файле.
Оптимизации никакой нет, поэтому считает длинно.
Итог:
29786+850+850 = 31486
Вот так считает в пять раз прытче, чем в предыдущем решении. Тоже никакой оптимизации, просто более современный метод проверки.

// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
 for var f:=1 to 9 do
  for var o:=0 to 9 do
   if o=f then continue
   else for var r:=0 to 9 do
    if Seq(1,o,r).Distinct.Countlt;gt;3 then continue
    else for var t:=1 to 9 do
     if Seq(f,o,r,t).Distinct.Countlt;gt;4 then continue
     else for var y:=0 to 9 do
      if Seq(f,o,r,t,y).Distinct.Countlt;gt;5 then continue
      else for var e:=0 to 9 do
       if Seq(f,o,r,t,y,e).Distinct.Countlt;gt;6 then continue
       else for var n:=0 to 9 do
        if Seq(f,o,r,t,y,e,n).Distinct.Countlt;gt;7 then continue
        else for var s:=1 to 9 do
         if Seq(f,o,r,t,y,e,n,s).Distinct.Countlt;gt;8 then continue
         else for var i:=0 to 9 do
          if Seq(f,o,r,t,y,e,n,s,i).Distinct.Countlt;gt;9 then continue
          else for var x:=0 to 9 do
           if Seq(f,o,r,t,y,e,n,s,i,x).Distinct.Count=10 then begin
            var a1:=f*10000+o*1000+r*100+t*10+y;
            var a2:=t*100+e*10+n;
            var a3:=s*10000+i*1000+x*100+t*10+y;
            if a1+a2+a2=a3 then begin
             writeln(a1,'+',a2,'+',a2,' = ',a3);
             Exit
             end
            end
end.

Итог
29786+850+850 = 31486
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт