Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
#1

Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр - C++

27.10.2012, 22:41. Просмотров 2070. Ответов 11
Метки нет (Все метки)

Помогите написать код,очень Вас прошу..
вот условие: Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр.
Заранее ОЧЕНЬ благодарю всех,кто сможет хоть чем-то мне помочь!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 22:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр (C++):

Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр - C++
Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр. Например 1234;1345;1789;6789. Выполнить без функций и...

Вывести все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр. - C++
Вот, собственно и условие: Вывести все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр. Пожалуйста, помогите...

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

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

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

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

11
Kuzia domovenok
2125 / 1955 / 194
Регистрация: 25.03.2012
Сообщений: 6,804
Записей в блоге: 1
27.10.2012, 22:47 #2
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main(){
  int i, j, k, t;
  for (i=1; i<=9; i++)
    for (j=0; j<=9; j++)
      for (k=0; k<=9; k++)
        for (t=0; t<=9; t++)
          if ((i!=j)&&(i!=k)&&(i!=t)&&(j!=k)&&(j!=t)&&(k!=t))
            printf ("%d%d%d%d, ", i, j, k, t);
  return 0;
}
самое простое, что может придти в голову.
Но тут можно ещё подумать, как отсечь заранее неверные варианты, например
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main(){
  int i, j, k, t;
  for (i=1; i<=9; i++)
    for (j=0; j<=9; j++)
      for (k=0; (k<=9)&&(i!=j); k++)
        for (t=0; (t<=9)&&(i!=k)&&(j!=k); t++)
          if ((i!=t)&&(j!=t)&&(k!=t))
            printf ("%d%d%d%d, ", i, j, k, t);
  return 0;
}
2
Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.10.2012, 23:00  [ТС] #3
ОГРОМНЕЙШЕЕ ВАМ СПАСИБО"!"""!!!!! сейчас сяду проверять

Добавлено через 6 минут
Все отлично!!
Спасибо Вам еще раз! Вы меня очень выручили!!!

а можно вопрос по уже сделанному?
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.10.2012, 09:54 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Универсальный вариант, работающий с любыми натуральными числами:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
 
bool Check(unsigned long a)
{
   int count[10] = {0};
   while(++count[a%10] < 2 && (a /= 10))
      ;
   return !a;
}
 
int main()
{
   int i;
   for(i = 1000; i < 10000; i++)
      if (Check(i))
         std::cout << i << "\n";
   return 0;
}
3
Kuzia domovenok
2125 / 1955 / 194
Регистрация: 25.03.2012
Сообщений: 6,804
Записей в блоге: 1
28.10.2012, 13:35 #5
Цитата Сообщение от Thinker Посмотреть сообщение
bool Check(unsigned long a)
{
* *int count[10] = {0};
* *while(++count[a%10] < 2 && (a /= 10))
* * * ;
* *return !a;
}
жесть какая! И чё тут происходит? Тут a вообще не изменяется, а потом резульат, равныё а возвращают.
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.10.2012, 14:05 #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Тут a вообще не изменяется
А это:
a /= 10
По сути, здесь уже получается мини-хеш-таблица, т.к. адресация идет по остатку от деления элемента.
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.10.2012, 15:31 #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
жесть какая! И чё тут происходит? Тут a вообще не изменяется, а потом резульат, равныё а возвращают.

Не по теме:

хорошо, выведите все 7-значные числа с разными цифрами. будете 7 циклов писать? а сделайте проверку, все ли цифры 100-значного числа в 500-ричной системе счисления различны)))

1
Kuzia domovenok
2125 / 1955 / 194
Регистрация: 25.03.2012
Сообщений: 6,804
Записей в блоге: 1
28.10.2012, 16:18 #8
Цитата Сообщение от Thinker Посмотреть сообщение
Не по теме:
хорошо, выведите все 7-значные числа с разными цифрами. будете 7 циклов писать? а сделайте проверку, все ли цифры 100-значного числа в 500-ричной системе счисления различны)))
Во-первых, да, я стормозил, не заметил в твоём цикле "(a /= 10)".
Во-вторых, в моих циклах перебирается меньше, чем 8999 вариантов, т.е. теоретически работает быстрее.
1
Байт
Эксперт C
17650 / 11688 / 1863
Регистрация: 24.12.2010
Сообщений: 23,302
28.10.2012, 16:27 #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
теоретически работает быстрее.
Если уж мы взялись оптимизировать...
C
1
 for(i=1234; i<=9876; i++)
1
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.10.2012, 16:32 #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в моих циклах перебирается меньше, чем 8999 вариантов, т.е. теоретически работает быстрее.
никто не спорит про быстроту. вопрос был в универсальности. а по поводу быстроты, то можно сгенерировать все требуемые числа без одной проверки, то есть будет еще быстрее))
1
Байт
Эксперт C
17650 / 11688 / 1863
Регистрация: 24.12.2010
Сообщений: 23,302
28.10.2012, 16:50 #11
Цитата Сообщение от Thinker Посмотреть сообщение
можно сгенерировать все требуемые числа
Верно! Сгененировать все 4! = 24 перестановок (для данной задачи их можно хранить в памяти), потом C410 сочетаний, к каждому из них применить эти 24 перестановки, и дело в шляпе!
Одна проверочка все-таки нужна, чтоб на первом месте не вылез 0
2
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.10.2012, 16:55 #12
Байт, Вы верно поняли, через перестановки. С 0 можно отдельно, без проверок, то есть сначала все числа, где его нет, а затем все числа с 0,
то есть зафиксировали 0 на 2 позиции и крутим перестановки остальных цифр, затем 0 на третей позиции и т.д.
1
28.10.2012, 16:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 16:55
Привет! Вот еще темы с ответами:

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

Вывести все простые числа, в которых нет двух подряд идущих одинаковых цифр - C++
В файле есть числа, вывести на экран все простые числа, в которых нет двух подряд идущих одинаковых цифр.

Найти количество чисел, в записи которых нет одинаковых цифр - C++
В ВУЗе лабораторная работа по программированию, а преподаватель наша заболела. В первые 4 лабораторные я худо-бедно вник. А вот дальше...

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


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

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

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