Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
#1

Мухи и слон - C++

12.11.2010, 21:31. Просмотров 1012. Ответов 2
Метки нет (Все метки)

Написать программу которая решит задчу:
МУХА+
МУХА+
МУХА=
_____
СЛОН

Каждая буква одначает свою цифру, т.е. при составление примера только М будет равна одной цифре. Любая другая буква не может равнятся той же цифре
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2010, 21:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Мухи и слон (C++):

На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон – по - C++
Помогите решить проблему error C2668: fabs: неоднозначный вызов перегруженной функции На шахматной доске стоят черный король и белые...

Слон - C++
Требуется определить, бьет ли слон, стоящий на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой...

Слон бьет врагов ??? - C++
Приветствую, всех! Кто то скажет опять эти шахматы, сам спекся :wall: когда получил задание. Но дорогие форумчани помогите с задание. Не...

Шахматы: Может ли слон побить слона? - C++
Вот это пример с ладьёй. #include <cstdlib> #include <iostream> using namespace std; bool func(char *one, char *two) { ...

На шахматной доске отметить все клетки, которые бьет слон - C++
Шахматная доска – игровое поле 8 × 8. Сформировать двумерный массив A – схематическое изображение доски, на котором отметить положение...

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

2
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
13.11.2010, 14:11 #2
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
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
70
71
//////////////////////////////////////////////////////////////////////////////////////
//  Написать программу которая решит задчу:
//  МУХА+
//  МУХА+
//  МУХА=
//  _____
//  СЛОН
//  
//  Каждая буква одначает свою цифру, т.е. при составление примера только М будет равна 
//  одной цифре. Любая другая буква не может равнятся той же цифре 
//////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <set>
#include <sstream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
typedef std::set<char>  T_char_set;
//////////////////////////////////////////////////////////////////////////////////////
int  to_int(const T_str&  s)
{
    std::istringstream  ssin(s);
    int res;
    ssin >> res;
    return  res;
}
//////////////////////////////////////////////////////////////////////////////////////
T_str  to_str(int n)
{
    std::ostringstream  sout;
    sout << n;
    return  sout.str();
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    int counter = 0;
    for(char S = '1'; S <= '9'; ++S)
    {
        for(char L = '0'; L <= '9'; ++L)
        {            
            for(char OO = '0'; OO <= '9'; ++OO)
            {                
                for(char N = '0'; N <= '9'; ++N)
                {
                    T_str       SLON_str = T_str() + S + L + OO + N;                    
                    T_char_set  SLON_MUXA_set(SLON_str.begin(), SLON_str.end());
                    if(SLON_MUXA_set.size() < 4) continue;
                    int         SLON_int = to_int(SLON_str);                   
                    if(SLON_int % 3 != 0)        continue;
                    int         MUXA_int = SLON_int / 3;
                    T_str       MUXA_str = to_str(MUXA_int);
                    SLON_MUXA_set.insert(MUXA_str.begin(), MUXA_str.end());
                    if(SLON_MUXA_set.size() < 8) continue;
 
                    std::cout << "#"
                              << ++counter
                              << ":\t"
                              << MUXA_int
                              << " + "
                              << MUXA_int
                              << " + "
                              << MUXA_int
                              << " = "
                              << MUXA_int + MUXA_int + MUXA_int
                              << std::endl;
                }
            }
        }
    }
}
Добавлено через 13 часов 53 минуты
Можно немножко короче сделать:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
//////////////////////////////////////////////////////////////////////////////////////
//  Написать программу которая решит задчу:
//  МУХА+
//  МУХА+
//  МУХА=
//  _____
//  СЛОН
//  
//  Каждая буква одначает свою цифру, т.е. при составление примера только М будет равна 
//  одной цифре. Любая другая буква не может равнятся той же цифре 
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <set>
#include <sstream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
typedef std::set<char>  T_char_set;
//////////////////////////////////////////////////////////////////////////////////////
bool  add_4_to_char_set(int n, T_char_set&  char_set)
{
    int old_set_size = char_set.size();
    std::ostringstream  sout;
    sout << n;
    T_str  s = sout.str();
    char_set.insert(s.begin(), s.end());
    return  char_set.size() == old_set_size + 4;
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    int  counter = 0;
    for(int  SLON_int = 0; SLON_int <= 9999; SLON_int += 3)
    {        
        T_char_set  SLON_set_4;
        if(!add_4_to_char_set(SLON_int, SLON_set_4))  continue;        
        int         MUXA_int = SLON_int / 3;        
        T_char_set  MUXA_set_4;
        if(!add_4_to_char_set(MUXA_int, MUXA_set_4))  continue;       
        if(!add_4_to_char_set(MUXA_int, SLON_set_4))  continue;              
 
        std::cout << "#"
                  << ++counter
                  << ":\t"
                  << MUXA_int
                  << " + "
                  << MUXA_int
                  << " + "
                  << MUXA_int
                  << " = "
                  << MUXA_int + MUXA_int + MUXA_int
                  << std::endl;    
    }
}
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
14.06.2011, 04:31 #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
#include <iostream>
 
using namespace std;
 
bool f(int a)
{
    bool b[10] = {};
    for(int i = 0; i < 8; i++)
    {
        if(b[a%10])
            return false;
        b[a%10] = true;
        a /= 10;
    }
    return true;
}
 
int main()
{
    for(int i = 1000; i <= 9999/3; i++)
        if(f(i*10000 + i*3))
            cout << i << " * 3 = " << i*3 << endl;
    system("pause");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2011, 04:31
Привет! Вот еще темы с ответами:

Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой - C++
Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой в пределах шахматной доски. Определить кратчайшие.

Написать задачку на двумерные массивы(Шахматная доска.На ней расположены 2 черных коня и белый слон). - C++
Помогите написать задачку на двумерные массивы. Задача: Шахматная доска.На ней расположены 2 черных коня и белый слон.Проверить сколько...

Определить, сможет ли белый слон перейти с одного поля на другое, не попав при этом под удар черного ферзя - C++
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали (при...

Определить сможет ли белый слон расположенный на поле (a,b),одним ходом пойти на поле (e,f),не попав при этом под удар чёрного коня нах.(c,d) - C++
ребята помогите пожалуйста!я в с++ вообще не бум-бум! у меня 2-е задачи с шахматами!а я даже играть не умею в них!помогите пожалуйста!я...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru