Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 01.11.2010
Сообщений: 20
1

Вложенные циклы

31.01.2011, 18:42. Просмотров 1309. Ответов 6
Метки нет (Все метки)


Найти все натуральные числа в диапазоне между m и n (m<n), в записи которых нет двух одинаковых цифр. Подсчитать количество таких чисел.

Не могу понять как реализовать этот код.Помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2011, 18:42
Ответы с готовыми решениями:

Вложенные циклы
Есть два цикла, один вложенный. for(int i=0; i&lt;N;i++) { for(int j=0; j&lt;M;j++) { A=... }...

Вложенные циклы
Подскажите, пожалуйста, как решить данное задание?

Вложенные циклы
&quot;Рисование&quot;символами.Символы должны отделяться пробелами.Надо вывести на экран. ____*____ ...

Вложенные циклы
for (int i = 1; i &lt; 10; ++i) { for (int j = 1; j &lt;= i; ++j) cout &lt;&lt; &quot;*&quot;; cout &lt;&lt;...

6
213 / 213 / 33
Регистрация: 26.12.2010
Сообщений: 691
31.01.2011, 19:38 2
Цитата Сообщение от dremm08 Посмотреть сообщение
Не могу понять как реализовать этот код.Помогите пожалуйста.
покажите наработки того, чего пытались понять
0
1 / 1 / 0
Регистрация: 01.11.2010
Сообщений: 20
31.01.2011, 19:48  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
    setlocale (0,"Russian");
    int m,n,last1=0,last2=0,a=0,b=0,c=0;
    cout<<"Введите m и n\n";
    cin>>m>>n;
    for (int i=m;i<=n;i++)
    {
        while (i>0)
        {
            b=0;
            last1=i%10;
            a=i/10;
            while (a>0)
Вот что смог написать.
0
Freelance
Эксперт С++
2877 / 1812 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
31.01.2011, 19:55 4
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
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <iterator>
 
int main()
{
    int m, n, cnt = 0;
    std::cin >> m >> n;
    std::string::iterator it;
    std::string num_str, tail;
 
    for(int num = m + 1; num < n; ++num)
    {
        std::ostringstream ost;
        ost << num;
        num_str = ost.str();
        tail = num_str;
 
        it = std::unique(num_str.begin(), num_str.end());
        num_str.resize(it - num_str.begin());
 
        if(tail == num_str)
        {
            std::cout << num_str  << ' ';
            ++cnt;
        }
    }
    std::cout << '\n' << cnt;
    return 0;
}
1
1 / 1 / 0
Регистрация: 01.11.2010
Сообщений: 20
31.01.2011, 19:58  [ТС] 5
Цитата Сообщение от asics Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <iterator>
 
int main()
{
    int m, n, cnt = 0;
    std::cin >> m >> n;
    std::string::iterator it;
    std::string num_str, tail;
 
    for(int num = m + 1; num < n; ++num)
    {
        std::ostringstream ost;
        ost << num;
        num_str = ost.str();
        tail = num_str;
 
        it = std::unique(num_str.begin(), num_str.end());
        num_str.resize(it - num_str.begin());
 
        if(tail == num_str)
        {
            std::cout << num_str  << ' ';
            ++cnt;
        }
    }
    std::cout << '\n' << cnt;
    return 0;
}
Спасибо большое,но я начинающий и такой код для меня не понятен,я объяснить его даже не смогу.
0
213 / 213 / 33
Регистрация: 26.12.2010
Сообщений: 691
31.01.2011, 20:11 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
int main(){
    int n,m,count=0;
 
    std::cin >> n;
    std::cin >> m;
 
    for(int i=n; i<m; i++){
        if(!(i%10 == ((i/10)%10)))
            count++;}
    std::cout << count << std::endl;
    system("pause");
}
Добавлено через 1 минуту
p.s. будет действовать для 0-99.)
1
Freelance
Эксперт С++
2877 / 1812 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
31.01.2011, 20:15 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
#include <iostream>
 
int get_cnt_dig(int num)
{
    int cnt = 0;
    for( ; num; ++cnt, num /= 10)
                    ;
    return cnt;
}
 
int main()
{
    int m, n, cnt = 0, *arr_num, _cnt, _num;
    bool key;
    std::cin >> m >> n;
 
 
    for(int num = m + 1; num < n; ++num)
    {
        _cnt = 0;
        arr_num = new int[get_cnt_dig(num)];
        _num = num;
 
        for(int i = 0; i < get_cnt_dig(num); ++i)
        {
            arr_num[i] = _num % 10;
            _num /= 10;
        }
 
        for(int i = 0; i < get_cnt_dig(num); ++i)
        {
            key = true;
            for(int j = 0; j < get_cnt_dig(num); ++j)
                if( i != j && arr_num[i] == arr_num[j])
                    key = false;
 
            if(key)
                ++_cnt;
        }
 
        if( _cnt == get_cnt_dig(num) )
        {
            std::cout << num << ' ';
            ++cnt;
        }
 
        delete[] arr_num;
    }
    std::cout << '\n' << cnt;
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2011, 20:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Вложенные циклы
как вывести на зкран следуюшие 41 42 ... 50 51 52 ... 60 61 62 ... 70 71 72 ... 80 с...

вложенные циклы
вывод на экран натуральных чисел лежащих в интервале и делящихся нацело на 5

Вложенные циклы С++
вывести на экран числа в виде таблицы 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10

Вложенные циклы
Всем привет. Изучаю С++ совсем недавно - по книге. Собсно вопрос. В главе о циклах в книге...


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

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

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