Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 05.07.2018
Сообщений: 3

Решение ребуса "Send+More=Money"

05.07.2018, 13:28. Показов 5689. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Американский студент написал письмо родителям следующего содержания:
SEND+MORE=MONEY
Какие цифры нужно подставить вместо английских букв, что бы получилось правильное арифметическое выражение?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.07.2018, 13:28
Ответы с готовыми решениями:

решение ребуса
найти все решения ребуса море+штор=авария нужна помощь,не знаю с чего даже начать ничего похожего никогда не делали

Решение ребуса
Здравствуйте, можете написать программу решения ребуса без вложенных циклов. С объяснениями, очень прошу. Вот сам ребус СССР=Р^Ф

Решение числового ребуса ЧАЙ : АЙ = 25
Нужна помощь в написании кода для решения числового ребуса "ЧАЙ : АЙ = 25" на языке с++ (С краткими комментариями)

5
05.07.2018, 13:38

Не по теме:

Криптарифм (cryptarithm) - это математический ребус, в котором зашифрован пример на выполнение одного из арифметических действий. При этом одинаковые цифры шифруются одной и той же буквой, а разным цифрам соответствуют различные буквы. Считается, что никакое число не должно начинаться с нуля.

Криптарифм можно считать хорошим, если в результате шифрования получилась какая-то осмысленная фраза. Например, классическим криптарифмом является пример на сложение, придуманный Генри Э. Дьюдени еще в начале нашего века: SEND+MORE=MONEY. Кроме того, еще одно требование к правильному криптарифму: он должен иметь единственную возможную расшифровку. Например, единственным решением криптарифма Дьюдени является 9567+1085=10652.

0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
05.07.2018, 13:49
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
for (int s=1; s<10; ++s)
 for(int e=0; e<10; ++e)
  if (s!=e)
   for(int n=0; n<10; ++n)
    if (n!=s && n!=e)
     for(int d=0; d<10; ++d)
      if (d!=s && d!=e && d!=n)
       for(int m=1; m<10; ++m)
        if (m!=s && m!=e && m!=n && m!=d)
         for(int o=0; o<10; ++o)
          if (o!=s && o!=e && o!=n && o!=d && o!=m)
           for(int r=0; r<10; ++r))
            if (r!=s && r!=e && r!=n && r!=d && r!=m && r!=o)
            {
             int first=s*1000+e*100+n*10+d;
             int second=m*1000+o*100+r*10+e;
             int third=m*10000+o*1000+n*100+e*10;
             int y=first+second-third;
             if (y>=0 && y<10 && y!=s && y!=e && y!=n && y!=d && y!=m && y!=o && y!=r)
             {
                  std::cout<<first<<"+"<<second<<"="<<first+second<<std::endl;
             }
            }
2
0 / 0 / 0
Регистрация: 05.07.2018
Сообщений: 3
05.07.2018, 13:54  [ТС]
Можешь обьяснить, друг?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
05.07.2018, 15:03
Лучший ответ Сообщение было отмечено misterobot как решение

Решение

задачка для церковно-приходской школы.
Просто перебираем все возможные буквы и цифры.

Добавлено через 1 минуту
добафил main
C++
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
#include <iostream>
int main()
{
    for (int s = 1; s < 10; ++s)
        for (int e = 0; e < 10; ++e)
            if (s != e)
                for (int n = 0; n < 10; ++n)
                    if (n != s && n != e)
                        for (int d = 0; d < 10; ++d)
                            if (d != s && d != e && d != n)
                                for (int m = 1; m < 10; ++m)
                                    if (m != s && m != e && m != n && m != d)
                                        for (int o = 0; o < 10; ++o)
                                            if (o != s && o != e && o != n && o != d && o != m)
                                                for (int r = 0; r < 10; ++r)
                                                if (r != s && r != e && r != n && r != d && r != m && r != o)
                                                {
                                                    int first = s * 1000 + e * 100 + n * 10 + d;
                                                    int second = m * 1000 + o * 100 + r * 10 + e;
                                                    int third = m * 10000 + o * 1000 + n * 100 + e * 10;
                                                    int y = first + second - third;
                                                    if (y >= 0 && y < 10 && y != s && y != e && y != n && y != d && y != m && y != o && y != r)
                                                    {
                                                        std::cout << first << "+" << second << "=" << first + second << std::endl;
                                                        return 0;
                                                    }
                                                }
    return 0;
}
Добавлено через 1 час 3 минуты
заменил индусский код говнокодом с рекурсией если кому надо что-то менее понятное.
C++
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
#include <iostream>
union {
    struct {
        int s, e, n, d, m, o, r, y;
    };
    int vals[8];
}x;
bool unique(int charid) {
    bool res = (x.vals[charid] >= 0 && x.vals[charid] < 10);
    for (int i = 0; i < charid && res; ++i)
        res = (res && x.vals[charid] != x.vals[i]);
    return res;
}
int recursearch(int charid) {
    if (charid == 7) {
        int first = x.s * 1000 + x.e * 100 + x.n * 10 + x.d;
        int second = x.m * 1000 + x.o * 100 + x.r * 10 + x.e;
        int third = x.m * 10000 + x.o * 1000 + x.n * 100 + x.e * 10;
        x.y = first + second - third;
        if (unique(charid))
        {
            std::cout << first << "+" << second << "=" << first + second << std::endl;
            return 1;
        }
        else return 0;
    }
    else {
        int& i = x.vals[charid];
        int i0 = (&i == &x.s || &i == &x.m)?1:0;
        for (i = i0; i < 10; ++i)
        {
            if (unique(charid))
                if (recursearch(1 + charid))
                    return 1;
        }
    }   
    return 0;
}
int main() {
    recursearch(0);
    return 0;
}
2
0 / 0 / 0
Регистрация: 03.11.2018
Сообщений: 29
10.12.2018, 21:22
А можно это же решение, но в Паскаль?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2018, 21:22
Помогаю со студенческими работами здесь

Решение ребуса: "Бабка + Дедка + Репка = Сказка"
Помогите пожалуйста составить код программы, решающий буквенный ребус &quot;БАБКА+ДЕДКА+РЕПКА=СКАЗКА&quot;

Решение ребуса SEND+MORE=MONEY
Решить ребус SEND + MORE = MONEY Разным буквам соответствуют разные цифры, а одинаковым буквам - одинаковые. решение. Очевидно, что...

SEND + EVEN + MORE = MONEY
Периодически попадаются подобные задачи и часто требуют как без повторения (на пермутации) или допускаются повторения аргументов, но без...

Решение ребуса (5)
Решить ребус ШЛИТЕ + ШЛИТЕ = ДЕНЬГИ программа решила 85467 + 85467 = 170934 REM REM ШЛИТЕ + ШЛИТЕ = ДЕНЬГИ REM REM 85467...

Решение ребуса (2)
Решить ребус ABCD + BDC = 2A2A программа нашла 6 решений 1529 + 592 = 2121 1538 + 583 = 2121 1547 + 574 = 2121 1574 + 547 = 2121...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru