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

C++

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

не могу разобраться.. - C++

26.12.2010, 23:27. Просмотров 461. Ответов 3
Метки нет (Все метки)

Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается ровно N раз. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B и значение N ввести с клавиатуры


Не получается сделать с числом N, не знаю даже как это сделать, чтобы выдавал только такие значения, сколько раз должно встречаться одинаковых цифр в числе, т.е. такое кол-во цифр=N


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
#include <iostream>
#include <locale>
 
int main()
{
long a, b, n;
setlocale(LC_ALL, "Rus");
std::cout << "Вести число N" << std::endl;
std::cin >> n ;
std::cout << "Ввести интервал (A и B)" << std::endl;
std::cin >> a >> b;
 
bool fl=false; 
for(long i = a; i <= b; i++)
 
if((i/100000+i%10==7) && ((i >10) || (i > 10000 && i < 99999)))
{
 
std::cout << i << " ";
std::cout << c << " ";
fl=true;}
if(!fl)
std::cout << "Требуемых чисел нет" << std::endl;
 
 
fflush(stdin); 
std::cin.get();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 23:27     не могу разобраться..
Посмотрите здесь:

Не могу разобраться с С++ - C++
Всем Привет, так я кодеру в Делфи. Не давно нашел что мне нужно но оy написан на С. Вот и начался у меня проблемы с кодами. Вот часть...

Не могу разобраться - C++ WinAPI
Есть функция, которая считает количество файлов в каталоге и подкаталогах. если вот так задать адрес каталога и передать его в функцию,...

Не могу разобраться с If - C++ Builder
if (k1&gt;=0) tgf2=k1 else { if (k2&gt;=0) tgf2=k2 else Labelp-&gt;Caption=&quot;Невозможно&quot;; } он ожидает &quot; ; &quot; и...

не могу разобраться - C++ Builder
Написать функции заполнения одномерного масива на N элементов: a) с клавиатуры b) натуральными числами от 1 до N с) случайными...

Не могу разобраться с задачей - C++
Дано целое число N и набор из N вещественных чисел. Вывести в том же порядке округленные значения всех чисел из данного набора (как целые...

Не могу разобраться в коде - C++
Здравствуйте, нашел код на форуме, он выводит файл в hex виде #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include...

Не могу разобраться в WinApi - C++ WinAPI
Хочу сам выучить с++, скачал книжку Финогенова &quot;Win32. Основы программирования&quot;, но ни один из кодов не работает. Например взял код...

Не могу разобраться с SaveDialog1 - C++ Builder
Ребят, тема такая, я сделал курсовую работу(текстовый редактор).Добавил функции :Открыть, сохранить как, печать, выход, изменение шрифта ,...

Не могу разобраться с 2D игрой - C++
Наверное это очень баянисто....многие кто начинали программировать писали свои собственные игры,я тоже пытался написать,например морской...

Не могу разобраться с ООП - C++
Помогите разобраться с ошибками. Что не так делаю? public class Points { Points(double initial_x, double initial_y, double...

не могу разобраться с typedef - C++
помогите разобраться typedef задает синоним типа только? например: typedef int myint; тут понятно все, вместо int можно...

Не могу разобраться с str_format - C++
Здраствуйте, мне надо собрать из частей слово Я прописал char a1=&quot;D&quot;; char a2=&quot;D&quot;; char a3=&quot;R&quot;; char a4=&quot;a&quot;; char a5=&quot;c&quot;; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаМи
Сообщений: n/a
26.12.2010, 23:43     не могу разобраться.. #2
не знаю на сколько точно, у меня вечно алгоритмы километровые но можно так - после того, как вы ввели N, создайте число которое нужно искать (N=3, m=777, правда это нужно делать в цикле m объявлять AnsiString или char [n] и в цикле записывать (т.е прибавлять к строке 7 каждый раз))
потом в цикле переводить число в строку искать есть ли вхождение m (если например число 12777 - нужно выводить ) если нужно выводить только 777, m перевести в int и сравнивать с вашими числами
реализация не ко мне, только идеи
maloy8373
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 3
26.12.2010, 23:47  [ТС]     не могу разобраться.. #3
спасибо, идейка забавная, но чего я только не пробывал, хотя толком не разбираюсь...
Попробую ещё разок помучиться...
ForEveR
В астрале
Эксперт С++
7967 / 4729 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
27.12.2010, 02:50     не могу разобраться.. #4
Для компиляции и запуска нужна студия 2010 или gcc 4.5+
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<int> Vec;
    int A, B;
    std::cout<<"Enter A, B: ";
    std::cin>>A>>B;
    std::cout<<"Enter elements. | for end input\n";
    std::copy_if(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(Vec), [&](int t) -> bool
        {
            if(t < A || t > B)
            {
                std::cout<<"Can`t insert this element. < A or > B\n";
                return false;
            }
            return true;
    });
    int N=0;
    std::cin.clear();
    std::cin.get();
    std::cout<<"Enter N: ";
    std::cin>>N;
    const int finded=7;
    std::vector<int> Results;
    std::for_each(Vec.begin(), Vec.end(), [&](int t)
    {
        std::vector<int> Vecs;
        int f=t;
        while(t)
        {
            Vecs.push_back(t%10);
            t/=10;
        }
        if(std::count(Vecs.begin(), Vecs.end(), finded) == N)
             Results.push_back(f);
    });
    if(!Results.size())
    {
        std::cout<<"There is no elements with "<< N <<" digits equal to "<< finded  <<'\n';
        system("pause");
        return 1;
    }
    std::cout<<"There is "<< Results.size() <<" elements with "<< N <<" digits equal to "<< finded <<'\n';
    std::copy(Results.begin(), Results.end(), std::ostream_iterator<int>(std::cout, " "));
    system("pause");
    return 0;
}
Yandex
Объявления
27.12.2010, 02:50     не могу разобраться..
Ответ Создать тему
Опции темы

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