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

Сколько цифр можно составить из заданных букв? - C++

Восстановить пароль Регистрация
 
mamzel
1 / 1 / 0
Регистрация: 30.10.2014
Сообщений: 30
12.01.2016, 15:12     Сколько цифр можно составить из заданных букв? #1
Дана последовательность из букв. Найти сколько цифр можно составить из этих букв, вывести их и то, что осталось невостребованным.

Добавлено через 2 часа 47 минут
Вот я набросал немного с использованием set. Я забил весь алфавит в исследуемую строку, а как мне если что вывести остаток алфавита, невостребованного для составления цифры. Например - Строка: LTOLEN, Число: TEN. Как вывести остаток - LOL ?
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
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
 
int main()
{
    char data[]="ABCDEFZHIKLMNOPQRSTVX"; // Исследуемое множество
    set<char> s; // Контейнер символов(Пустое множество)
    for(int i=0;data[i]!=0;i++)
        s.insert(data[i]);  // Переносим множество в контейнер
    if(s.find('ONE') != s.end())
    {
        cout << " 1 ";
    }
    if(s.find('TWO') != s.end())
    {
        cout << " 2 ";
    }
    if(s.find('THREE') != s.end())
    {
        cout << " 3 ";
    }
    if(s.find('FOUR') != s.end())
    {
        cout << " 4 ";
    }
    if(s.find('FIVE') != s.end())
    {
        cout << " 5 ";
    }
    if(s.find('SIX') != s.end())
    {
        cout << " 6 ";
    }
    if(s.find('SEVEN') != s.end())
    {
        cout << " 7 ";
    }
    if(s.find('EIGHT') != s.end())
    {
        cout << " 8 ";
    }
    if(s.find('NINE') != s.end())
    {
        cout << " 9 ";
    }
    if(s.find('TEN') != s.end())
    {
        cout << " 10 ";
    }
 
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IngProj
673 / 45 / 10
Регистрация: 23.10.2015
Сообщений: 93
12.01.2016, 15:26     Сколько цифр можно составить из заданных букв? #2
Удалить символы из строки очень просто. Есть такой метод Replace() класса String. Котой позволяет заменить все вхождения одного символа в строку другим. Например:
есть строка "toptoler". Нужно удалить символы "t".
C#
1
2
3
String defString = "toptoler";
String newString = "";
newString = defString.Replace("t", "");
таким образом символ "t" замениться символом "". В вашем случе в методе вместо символа "t" указываете строку "two". Эффект тот же.
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
12.01.2016, 16:00     Сколько цифр можно составить из заданных букв? #3
у вас не правильно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.01.2016, 16:03     Сколько цифр можно составить из заданных букв? #4
Цитата Сообщение от mamzel Посмотреть сообщение
Найти сколько цифр можно составить из этих букв
мне одному смешно?
mamzel
1 / 1 / 0
Регистрация: 30.10.2014
Сообщений: 30
13.01.2016, 11:57  [ТС]     Сколько цифр можно составить из заданных букв? #5
а как мне было смешно, когда задачку дали)

Добавлено через 18 часов 44 минуты
хелп
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
13.01.2016, 12:56     Сколько цифр можно составить из заданных букв? #6
считаете сколько каждой букву нужно для составления числа ,считаете сколько каждой буквы есть в тексте ,потом проверяете ,если для какого-то числа букв хватает то выводим его . искать остатки можно помечая не используемые индексы в тексте
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2016, 15:53     Сколько цифр можно составить из заданных букв?
Еще ссылки по теме:

Вывести сообщение "Можно", если из букв введенной строки X можно составить введенную строку Y C++
Проверить, можно ли из букв строки А составить строку В C++
С помощью заданных функций проверить сколько можно построить различных треугольников C++

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

Или воспользуйтесь поиском по форуму:
Termit779
 Аватар для Termit779
44 / 29 / 10
Регистрация: 22.11.2015
Сообщений: 98
13.01.2016, 15:53     Сколько цифр можно составить из заданных букв? #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Во как. На "коленке собрал"
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//  Составляет возможные варианты представления
//  чисел из набора символов. Выводит представление
//  чисел и остаток неиспользуемых символов ("шум" :)
 
#include <iostream>
using namespace std;
 
//  Функция ищет совпадения между двумя входными строками
string out_slovo(string v_simvol, string v_slovo) {  
    string v_res;   
    for (int i = 0; i < v_slovo.size(); i++)
    {
        for (int j = 0; j < v_simvol.size(); j++)
        {
            if (v_slovo[i] == v_simvol[j])
            {
                v_res.push_back(v_simvol[j]);               
                break;
            }
        }
    }   
    if (v_slovo.size() > v_res.size())
    {
        v_res.clear();
        
        
    }
    return v_res; 
}
 
//  Функция удаляет из исходного набора символов уже использованные
string out_simvol(string v_simvol, string v_res) {      
        for (int i = 0; i < v_res.size(); i++)
        {
            for (int j = 0; j < v_simvol.size(); j++)
            {
                if (v_res[i] == v_simvol[j])
                {
                    v_simvol[j] = '0';
                    break;
                }
            }
        }
        return v_simvol;    
}
 
//  Функция выводит результат совпадения v_res
void out_v_res(string v_res) {
 
    if (v_res != "") {
        for (int i = 0; i < v_res.size(); i++)
        {
            cout << v_res[i];
        }
    }
    cout << " ";    
}
 
//  Функция выводит не использованные символы
void out_v_simvol(string v_simvol) {
    for (int i = 0; i < v_simvol.size(); i++)
    {
        if (v_simvol[i] != '0') {
            cout << v_simvol[i];
        }
    }
    cout << "\n";
    
}
 
 
int main() {
    setlocale(0, "Russian");
    string v_res; // Результат совпадения
    string v_simvol = { "LTOLEN" }; // Строка произвольных символов
    string zero = "ZERO"; // Строки для поиска
    string ten = "TEN";
    string two = "TWO";
    //  И так далее ...
    
    // ZERO
    v_res = out_slovo(v_simvol, zero); // Ищем совпадения
    if (v_res != "") {                  // Если результат найден
    v_simvol = out_simvol(v_simvol, zero); // Удаляем использованные символы
    }
    cout << "Составлены представления чисел: ";
    out_v_res(v_res); // Выводим совпадение
    
    // TEN
    v_res = out_slovo(v_simvol, ten); 
    if (v_res != "") {
    v_simvol = out_simvol(v_simvol, ten);
    }   
    out_v_res(v_res);   
 
    // TWO
    v_res = out_slovo(v_simvol, two); 
    if (v_res != "") {
    v_simvol = out_simvol(v_simvol, two);
    }
    out_v_res(v_res); 
    cout << "\nНе использованные символы: ";
    out_v_simvol(v_simvol); //  Выводим неиспользуемые символы
 
    // И так далее ...
    
 
 
    system("pause");
}
Yandex
Объявления
13.01.2016, 15:53     Сколько цифр можно составить из заданных букв?
Ответ Создать тему
Опции темы

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