![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 13.06.2010
Сообщений: 5
|
![]()
Hello. Есть такая задача, вроде бы простая, но у меня от неё полный тупняк!
Задача: Вводим число N. Нужно вывести все n-разрядные числа, в которых все эдементы разные. Вопрос: Какой алгоритм выбрать? создаём массив из n элементов и начинаем заполнять его по очерёдности, при этом проверяя не равняются ли элементы массива друг другу, если нет, то пишем все элементы массива на экран? или есть проще вариант? |
![]() |
![]() |
![]() |
#2 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
Я так это понимаю... Допустим, задали число 3, тогда нужно вывести все числа от 100 до 999, в которых все цифры разные, т.е. 102, 103, 104, и т.д.
Т.е. в этих числах нет повторяющихся цифр, т.е. 101, 111, 222, 202 уже не подходят... Если договоримся - сделаю... Pascal, Delphi. Контакты: e-mail: delmas-61@mail.ru icq: 585281783 Skype: delmas61
Перемешивай дело с бездельем и не сойдешь с ума...
Последний раз редактировалось Grag; 13.06.2010 в 11:47. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Ну если вопрос в алгоритме, то перебираем все целые числа в цикле от exp((N-1)*ln(10)) до exp((N)*ln(10))-1 - это нам даст все N-разрядные числа. Каждое k-тое число разлагаем на цифры и проверяем её на повторность, примерно так
Код:
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 13.06.2010
Сообщений: 5
|
![]()
спасибо за скорую помощь!
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 13.06.2010
Сообщений: 5
|
![]()
можно поподробнее с экспонентой? например вводим 3, и как ему обьяснить, что числа со 100 до 999 будут перечисляться?
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
exp((N-1)*ln(10)) означает 10^(N-1) при N=3 получаем 10^2=100
exp((N)*ln(10))-1 означает 10^N - 1 при N=3 получаем 10^3 -1=1000-1=999 Общая формула a^b = exp(b*ln(a)) |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 13.06.2010
Сообщений: 5
|
![]()
круто, спасибо! не знал...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а можно границы можно найти и так, без использования возведения в степень и логарифмов
![]() Код:
|
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 13.06.2010
Сообщений: 5
|
![]()
В чём ошибка в циклах? Максимальное и минимальное значения выводит и всё! извиняюсь, что много переменных - но мне так проще понять - пойму перепишу! код cpp:
#include <iostream> #include <math.h> using namespace std; int step_x(int x) { x=exp((x)*log(10))-1; // Максимальное значение степени числа return x; } int step_y(int x) { int y; y=exp((x-1)*log(10)); // Минимальное значение степени числа return y; } int main() { int a,x,y; cout << "Введите степень в которую возвести : "; cin >> a; x=step_x(a); cout << " Максимальное значение этой степени = " << x << endl; y=step_y(a); cout << "Минимальное число в этой степени = " << y << endl; while (x>y) { int d; int b[100]; int i=1; d=x; while (d>0) { b[i]=d%10; // типа заполнил массив i++; d=d/10; } int e; int p=0; e=b[i]; i=i-1; for (i; i>0; i--) { // проверяю не равняется ли последняя цифра преведущей if (e==b[i]) p=1; } if (p==0) { cout << " Число " << x << " подходит по условию"<< endl; } x--; } } Последний раз редактировалось edrushh; 13.06.2010 в 16:52. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод элементов массива.Изменение элементов массива. | Vesnushka18 | Помощь студентам | 6 | 09.06.2011 13:05 |
вывод элементов из массива | kirosin | PHP | 3 | 15.05.2010 13:00 |
Вывод значения элементов массива | valdemar593 | Общие вопросы C/C++ | 7 | 22.12.2009 21:37 |
Вывод элементов матрицы | tomsoier | Общие вопросы C/C++ | 1 | 13.12.2009 15:13 |
Вывод ненулевых элементов массива | Ci_novice | Общие вопросы C/C++ | 2 | 28.12.2007 14:59 |