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

С++ для начинающих

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

Все числа X с N-ым количеством неповторяющихся цифр - C++

21.03.2011, 13:48. Просмотров 616. Ответов 1
Метки нет (Все метки)

Доброе время суток. С Паскаля перехожу на C/C++ и по сути это первая задача которую мне предстоит решить. Задача: Ввести число N и вывести все N значные числа с разными цифрами тоесть, если N=1,то 0 1 2 3 4 5 6 7 8 9. Если N=2, то 10 12 13 14 15 16 17 18 19 20 21 23.....и тд.
Вот в чем проблема, после Паскаля я всё ещё думаю по его логике. На Паскале эта задача бы решилась за 3 минуты, создаем множество, от числа "отсекаем" по последней цифре и и сравниванием в множестве есть это число или нет, если нету то добовляем в множество, если есть, то отмечаем не печатать его.
Для Си мое решение (кода еще нету), делаем массив из 10 элементов (0..9) в котором будет храниться Тру или Фолсе. Превращаем все в Фолсе. "Отсекаем" последнию цифру(допустим в х=последня цифра).
Проверяем массив[x] из тру? Нет? Делаем тру. Да? Отмечаем не петать.
Мой способ решения на Си выглядит слишком сложный по сравнению с паскалем, хотя по сути я пытаюсь тот же способ присвоить Си, вот в этом и проблема. Может кто прокоментировать или описать способ более пригодный для Си. Понимаю что много букавок но может кто осилит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2011, 13:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Все числа X с N-ым количеством неповторяющихся цифр (C++):

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа - C++
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не...

Вывести все числа с количеством разрядов n - C++
Нужно вывести все n-цифровые числа. Вводится одное число n и выводится все n-цифровые числа

Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27 - C++
найти все четырёхзначные числа , у которых сумма крайних цифр равна сумме средних цифр , а само число делится на 6 и 27 . В С++

Найти все натуральные числа из заданного промежутка, с заданным количеством делителей - C++
Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N (N вводить с клавиатуры).

дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! - C++
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!!...

Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9 - C++
Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9. Знаю что должно вывести 18, 45, 90,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Day
1155 / 960 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
21.03.2011, 15:42 #2
Вызов принят!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char c[10];
for(i=1, k=1; i<n; i++) k *= 10;
kend = k*10;
for(i=k; i<kend; i++) {
  memset(c, 0, 10);
  m = i;
  while(m!=0) {
     cc= m%10;
     if (c[cc]) break;
     c[cc] = 1;
     m /= 10;
  }
   if (m!=0) continue;
   printf("%d\n", i);
}
Числа могут большие, их лучше делать как long. int не на всех платформах достаточно велик.
А вообще-то мне этот алгоритм не нравится. Слишком много пустых прогонов.
Может быть пойти другим путем - комбинаторным.
Генерировать перестановки из n элементов, потом сгенерить все монотонные инъекции n элементов в
множество { 0..9 }.
Или даже сразу генерить все инъекции.
Но это уже другая задача.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2011, 15:42
Привет! Вот еще темы с ответами:

Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8, 9 - C++
Вроде код правильный наклепала. А вывода никакого нет. В чем ошибка? #include &lt;vcl.h&gt; #include &lt;iostream.h&gt; #include &lt;math.h&gt; ...

Даны числа m и n, получить все натуральные числа,меньшие n, квадрат суммы цифр которых равен m - C++
помогите решить задачку. Даны числа m и n. Получить все натуральные числа,меньшие n, квадрат суммы цифр которых равен m .(m и n вводятся с...

Даны числа m и n. Получить все натуральные числа,меньшие n, квадрат суммы цифр которых равен m - C++
Доброго времени суток) прошу вашей помощи. Даны числа m и n. Получить все натуральные числа,меньшие n, квадрат суммы цифр которых равен...

На отрезке [2, n] найти все натуральные числа, сумма цифр которых при умножении числа на а не изменится - C++
Помогите,вот задание. На отрезке найти все натуральные числа, сумма цифр которых при умножении числа на а не изменится. Код...


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

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

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