Решить Ребус Fly+For+Your=Life- Pascal(Паскаль)

var
  f, l, y, o, r, u, i, e: 0 .. 9;
  dig: set of 0 .. 9;
  sum, life: longint;
  m: text;

begin
  assign(m, 'output.txt');
  rewrite(m);

  for f := 1 to 9 do
  begin
    include(dig, f);
    for l := 1 to 9 do
      if not(l in dig) then
      begin
        include(dig, l);
        for y := 1 to 9 do
          if not(y in dig) then
          begin
            include(dig, y);
            for o := 0 to 9 do
              if not(o in dig) then
              begin
                include(dig, o);
                for u := 0 to 9 do
                  if not(u in dig) then
                  begin
                    include(dig, u);
                    for r := 0 to 9 do
                      if not(r in dig) then
                      begin
                        include(dig, r);
                        for i := 0 to 9 do
                          if not(i in dig) then
                          begin
                            include(dig, i);
                            for e := 0 to 9 do
                              if not(e in dig) then
                              begin
                                include(dig, e);

                                begin
                                  sum := y * 1000 + (f + f + o) * 100 +
                                    (l + o + u) * 10 + (y + r + r);
                                  life := l * 1000 + i * 100 + f * 10 + e;
                                  if (sum = life) and (f <> y) and (f <> l) and
                                    (f <> o) and (f <> r) and (f <> u) and
                                    (f <> i) and (f <> e) and (l <> y) and
                                    (l <> o) and (l <> r) and (l <> u) and
                                    (l <> i) and (l <> e) and (y <> o) and
                                    (y <> r) and (y <> u) and (y <> i) and
                                    (y <> e) and (o <> r) and (o <> u) and
                                    (o <> i) and (o <> e) and (r <> u) and
                                    (r <> i) and (r <> e) and (u <> i) and
                                    (u <> e) and (i <> e) then
                                    writeln(m, f, l, y, '+', f, o, r, '+', y, o,
                                      u, r, '=', l, i, f, e);

                                  exclude(dig, e);
                                end;
                                exclude(dig, i);
                              end;
                            exclude(dig, r);
                          end;
                        exclude(dig, u);
                      end;
                    exclude(dig, o);
                  end;
                exclude(dig, y)
              end;
            exclude(dig, l);
          end;
        exclude(dig, f);

      end;
  end;
  close(m);

end.

Leave a Comment

− 2 = 3