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

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

Восстановить пароль Регистрация
 
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
12.11.2010, 21:31     Мухи и слон #1
Написать программу которая решит задчу:
МУХА+
МУХА+
МУХА=
_____
СЛОН

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

C++ Написать задачку на двумерные массивы(Шахматная доска.На ней расположены 2 черных коня и белый слон).
Слон бьет врагов ??? C++
Слон C++
Определить сможет ли белый слон расположенный на поле (a,b),одним ходом пойти на поле (e,f),не попав при этом под удар чёрного коня нах.(c,d) C++
C++ Шахматы: Может ли слон побить слона?
Мухи
C++ Определить, сможет ли белый слон перейти с одного поля на другое, не попав при этом под удар черного ферзя
На шахматной доске отметить все клетки, которые бьет слон C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,651
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;    
    }
}
Хохол
Эксперт C++
 Аватар для Хохол
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");
}
Yandex
Объявления
14.06.2011, 04:31     Мухи и слон
Ответ Создать тему
Опции темы

Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru