0 / 0 / 0
Регистрация: 03.03.2018
Сообщений: 3
1

Ребус: VOLVO+FIAT=MOTOR, используя тип "Множество"

03.03.2018, 23:00. Показов 1829. Ответов 2

Author24 — интернет-сервис помощи студентам
Ребус: VOLVO+FIAT=MOTOR. Каждая буква – это цифра, разным буквам соответствуют разные цифры. Необходимо заменить буквы цифрами так, чтобы получилось верное равенство. Найти все решения (если есть несколько ). ИСПОЛЬЗОВАТЬ ТИП «МНОЖЕСТВО».
помогите, пожалуйста отыскать ошибку в коде (или предложите свой вариант решения). Моя программа ошибки не выдает, но и решения тоже (а их должно быть 10 шт.).

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Program Rebus;// VOLVO + FIAT= MOTOR
Type
  MN = set of 0..9;
Var
  f,i,a,t,v,o,l,m,r : 0..9;
  S1, S2, S3 : MN;{для хранения цифр каждого из чисел}
  sum,motor:longint;
Begin
  S1 := [ ];
  S2 := [ ];
  s3 := [ ];
  for v := 1 to 9 do
  begin
    S1 := S1+[v];
    for o := 0 to 9 do
      if Not(o in S1) then
      begin
        S1 := S1+[o];
        for l := 0 to 9 do
          if Not (l in S1) then
          begin 
            S1 := S1+[l];                    
            for f:=0 to 9 do 
            begin
              S2 := S2+[f];
                for i :=0 to 9 do
                  if Not(i in S2) then
                  begin
                    S2 := S2+[i];
                    for a := 0 to 9 do
                      if Not (a in S2) then
                      begin 
                        S2 := S2+[a];      
                          for t:=0 to 9 do
                            if Not (t in S2) then
                              begin
                                s2:=s2+[t];
                                for m:=1 to 9 do 
                                begin
                                  S3 := S3+[m];                  
                                  for r:=0 to 9 do
                                    if Not (r in S3) then
                                    begin
                                      s3:=s3+[r];              
                                      sum:=10000*v+1000*(o+f)+100*(l+i)+10*(v+a)+(o+t);
                                      motor:=10000*m+1000*o+100*t+10*o+r;
                                      if sum=motor then
                                        if (s1*s2=[ ]) and (s2*s3=[t])and (s1*s3=[o])then
                                          writeln(v,o,l,v,o,'+',f,i,a,t,'=',m,o,t,o,r);
                                      s3:=s3-[r];
                                    end;
                                    s3:=s3-[m];
                                end;
                                s2:=s2-[t];
                              end;
                        s2:=s2-[a];
                      end;
                    s2:=s2-[i];
                  end;
               s2:=s2-[f];
            end;
            s1:=s1-[l]; 
          end;
          s1:=s1-[o];
      end;
    s1:=s1-[v];
  end;
  Readln;
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2018, 23:00
Ответы с готовыми решениями:

Решить ребус: VOLVO - FIAT=MOTOR
Собстенно чёткой темы нету вот создал. Ну и сразу хочу попросить помощи с программой 1.Работа с...

Напишите решение ребуса WOLVO+FIAT=MOTOR
Напишите решение ребуса WOLVO+FIAT=MOTOR. Мои розсуждения: первое нужно сформировать число или...

Решить ребус: VOLVO - FIAT = MOTOR
3. Решить ребус: VOLVO - FIAT = MOTOR

VOLVO + FIAT = MOTOR
Ребят, помогите решить ребус VOLVO + FIAT = MOTOR... при условии что буква это цифра... У меня вот...

2
Модератор
9903 / 5262 / 3317
Регистрация: 17.08.2012
Сообщений: 16,077
04.03.2018, 01:44 2
f не может быть 0. И напутали со множествами. На самом деле, тут не нужно три множества, достаточно одного. Во внешнем цикле проще применить присваивание, чем включение / исключение. Во внутреннем цикле вообще незачем r вносить во множество. Исправленный вариант Вашей программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
type
  mn = 0..9;
 
var
  v, o, l, f, i, a, t, m, r: mn;
  s: set of mn;
 
begin
  writeln('VOLVO+FIAT=MOTOR');
  for v := 1 to 9 do
    begin
      s := [v];
      for o := 0 to 9 do if not (o in s)
        then begin
          include(s, o);
          for l := 0 to 9 do if not (l in s)
            then begin
              include(s, l);
              for f := 1 to 9 do if not (f in s)
                then begin
                  include(s, f);
                  for i := 0 to 9 do if not (i in s)
                    then begin
                      include(s, i);
                      for a := 0 to 9 do if not (a in s)
                        then begin
                          include(s, a);
                          for t := 0 to 9 do if not (t in s)
                            then begin
                              include(s, t);
                              for m := 1 to 9 do if not (m in s)
                                then begin
                                  include(s, m);
                                  for r := 0 to 9 do
                                    if not (r in s) and
                                       ((((v*10+o+f)*10+l+i)*10+v+a)*10+o+t = (((m*10+o)*10+t)*10+o)*10+r)
                                      then writeln(v, o, l, v, o, '+', f, i, a, t, '=', m, o, t, o, r);
                                  exclude(s, m)
                                end;
                              exclude(s, t)
                            end;
                          exclude(s, a)
                        end;
                      exclude(s, i)
                    end;
                  exclude(s, f)
                end;
              exclude(s, l)
            end;
          exclude(s, o)
        end;
    end;
  readln
end.
Добавлено через 21 минуту
Ещё вариант (не для всех диалектов паскаля):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
type
  mn = 0..9;
 
const
  d: set of mn = [0..9];
 
var
  v, o, l, f, i, a, t, m, r: mn;
 
begin
  writeln('VOLVO+FIAT=MOTOR');
  for v in d - [0] do
    for o in d - [v] do
      for l in d - [v, o] do
        for f in d - [0, v, o, l] do
          for i in d - [v, o, l, f] do
            for a in d - [v, o, l, f, i] do
              for t in d - [v, o, l, f, i, a] do
                for m in d - [0, v, o, l, f, i, a, t] do
                  for r in d - [v, o, l, f, i, a, t, m] do
                    if ((((v*10+o+f)*10+l+i)*10+v+a)*10+o+t = (((m*10+o)*10+t)*10+o)*10+r)
                      then writeln(v, o, l, v, o, '+', f, i, a, t, '=', m, o, t, o, r);
  readln
end.
0
0 / 0 / 0
Регистрация: 03.03.2018
Сообщений: 3
08.03.2018, 14:37  [ТС] 3
Спасибо огромное!)
0
08.03.2018, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2018, 14:37
Помогаю со студенческими работами здесь

Используя тип множество определить количество согласных в каждой строчке файла
Есть текстовый файл. Используя тип множество опередлить количество согласных в каждой строчке....

Используя тип множество, найти все слова, начинающиеся на гласные буквы
Дано текстовый файл. Используя тип множество, найти все слова, начинающиеся на гласные буквы, и...

Используя тип множество, выяснить каких букв в тексте больше, гласных или согласных
Дано текст из простых латинских букв и цифр, за которыми следует точка. Используя тип множество,...

Преобразование кода Arduino с L-Motor Shield на Motor Shield
Я делаю проект по типу robohabr Там используются: 1. Arduino Uno. 2. Драйвер моторов L-Motor...

Создание объекта класса используя его тип и конструктор полученный используя рефлексию
Возможно ли создать объект класса используя activator.CreateInstance используя нужный мне...

тип множество
Определить в строке количество целых чисел, у которых старшая цифра чётная.

тип множество
Очень нужна помощь! Дано не пустую последовательность из латинских букв,которые могут разделятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru