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

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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 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;
}
Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.10.2012, 23:00  [ТС]     Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр #3
ОГРОМНЕЙШЕЕ ВАМ СПАСИБО"!"""!!!!! сейчас сяду проверять

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

а можно вопрос по уже сделанному?
Thinker
Эксперт C++
4225 / 2199 / 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;
}
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 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 вообще не изменяется, а потом резульат, равныё а возвращают.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.10.2012, 14:05     Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Тут a вообще не изменяется
А это:
a /= 10
По сути, здесь уже получается мини-хеш-таблица, т.к. адресация идет по остатку от деления элемента.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.10.2012, 15:31     Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
жесть какая! И чё тут происходит? Тут a вообще не изменяется, а потом резульат, равныё а возвращают.

Не по теме:

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

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

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

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

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

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

Среди десятичных чисел найти те, в которых нет одинаковых цифр - C++
Доброї ночі всім!!!Дуже Потрібна ваша допомога.На завтра обов'язково =(дякую за увагу і допомогу. Написати програму мовою С++ до задачі: ...


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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.10.2012, 16:55     Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр #12
Байт, Вы верно поняли, через перестановки. С 0 можно отдельно, без проверок, то есть сначала все числа, где его нет, а затем все числа с 0,
то есть зафиксировали 0 на 2 позиции и крутим перестановки остальных цифр, затем 0 на третей позиции и т.д.
Yandex
Объявления
28.10.2012, 16:55     Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр
Ответ Создать тему
Опции темы

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