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

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

Восстановить пароль Регистрация
 
WresDAG.
8 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
25.06.2011, 18:29     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа #1
Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2011, 18:29     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа
Посмотрите здесь:

C++ Напечатать в возрастающем порядке все трехзначные числа
Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр. C++
Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр C++
Строки. Программа печати в возрастающем порядке всех цифр, входящих в запись числа C++
C++ Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JeyKip
53 / 45 / 2
Регистрация: 23.06.2011
Сообщений: 122
25.06.2011, 20:22     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа #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
#include <iostream>
#include <conio.h>
#include <set>
using namespace std;
 
void main ()
{
    setlocale(0,"");
    set<long int> num;
    set<long int>::iterator it;
    int a;
    int b = 0;
    cout<<"Введите натуральное число\n\n";
    cin>>a;
    for (int i=0; i<10; i++)
        num.insert(i);
 
    while (a > 0)
    {
        num.erase((long int)a%10);
        a/=10;
    }
 
    it = num.begin();
    cout<<"\nЧисла, не вошедшие в последовательность:\n\n";
    while (it != num.end())
    {
        cout<<*it<<" ";
        it++;
    }
    getch();
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.06.2011, 20:46     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа #3
не правильно работает, если в качестве числа 0 передать, а так вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int have_digit(int number, int digit){
    return ( ! number ) ?  0 : ( number % 10 == digit ) ? 1 : have_digit(number / 10, digit);
}
 
int main(void){
    int num, i;
 
    while ( printf("Number: ") && scanf("%d", &num) == 1 ){
        printf("Digits not in use: ");
        for ( i = 0; i < 10; ++i ){
            if ( ! have_digit(num, i) )
                printf("%d", i);
        }
        printf("\n");
    }
 
    return 0;
}
grizlik78
Эксперт С++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,960
25.06.2011, 21:02     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа #4
Небольшой "чит" к коду easybudda
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <string.h>
 
int have_digit(int number, int digit){
    char buf[16];
    snprintf (buf, 16, "%d", number);
    return NULL != strchr(buf, '0'+digit);
}
 
int main(void){
    int num, i;
 
    while ( printf("Number: ") && scanf("%d", &num) == 1 ){
        printf("Digits not in use: ");
        for ( i = 0; i < 10; ++i ){
            if ( ! have_digit(num, i) )
                printf("%d", i);
        }
        printf("\n");
    }
 
    return 0;
}
JeyKip
53 / 45 / 2
Регистрация: 23.06.2011
Сообщений: 122
25.06.2011, 23:15     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа #5
не правильно работает, если в качестве числа 0 передать
0 не является натуральным числом...натуральные от 1 и выше...
Yandex
Объявления
25.06.2011, 23:15     Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа
Ответ Создать тему
Опции темы

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