![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]()
Подскажите в каком направлении думать,а то никак не могу понять как делать
![]() Задача: Написать программу выводящую десятизначное число, которое удовлетворяет следующим условиям: первая цифра соответствует количеству нулей в числе; вторая цифра - количеству единиц; третья цифра - количеству двоек; ... десятая цифра - количеству девяток.
Ёж птица гордая, пока не пнешь не полетит.
Последний раз редактировалось Ezhuk; 10.10.2010 в 00:08. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
думать в эту сторону:
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]()
Я видимо не очень точно сформулировал...
У вас считает количество каждой цифры во вводимом числе, а надо чтобы условия выполнялись в самом десятизначном числе. У меня пока что получается вот так: Первоначально пусть число будет 0 0 0 0 0 0 0 0 0 0 Считается количество нулей - 10, но т.к. 10 будет записываться в первую цифру нулей уже станет 9: 9 0 0 0 0 0 0 0 0 0 Дальше считает кол-во 9 - 1, записывается в последнюю 9 0 0 0 0 0 0 0 1 0 Нулей становиться 8 и девятки уже нет а есть 8; 8 0 0 0 0 0 0 0 1 0 Считаем единицы - 1 7 1 0 0 0 0 0 1 0 0 Единиц стало две записываем 7 2 0 0 0 0 1 0 0 0 Записываем, количество двоек в третье число 6 2 1 0 0 0 1 0 0 0 Собственно получаем искомое число. Но такой путь у меня не получается реализовать.
Ёж птица гордая, пока не пнешь не полетит.
Последний раз редактировалось Ezhuk; 10.10.2010 в 11:09. |
![]() |
![]() |
![]() |
#4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
По твоей логике должно быть так: Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]()
Ааа... и правда чушь получилась.
Все пропало...
Ёж птица гордая, пока не пнешь не полетит.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 10.10.2010
Сообщений: 48
|
![]()
Можно конечно подумать, как решить эту задачу по-настоящему, но на полный перебор уходит всего 20ms, так что есть ли смысл
![]() Код:
Последний раз редактировалось q_proger; 10.10.2010 в 13:11. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]()
Спасибо, q_proger.
Не могли бы вы объяснить алгоритм выполнения и поконкретнее остановиться на этих строчках Цитата:
И как работает функция memcmp?
Ёж птица гордая, пока не пнешь не полетит.
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 10.10.2010
Сообщений: 48
|
![]()
a[0] бывает равно 10, это конечно так не должно быть, но ничего страшного из за этого не произойдет, так что пусть будет место и для 10ого элемента.
memcmp - memopy compare, сравнивает два блока памяти, т. е. одинаковы ли массивы. Код:
Для перебора всех вариантов 10значных чисел с суммой цифр 10 пишем функцию f, которая распределяет "left" начиная с позиции "pos", в самом первом вызове надо распределить 10 начиная с 0й позиции f(10, 0). А уже эта функция перебирает циклом от 0 до 10 сколько бы она поставила в 0ю позицию и вызывает сама себя для распределения остатка начиная с первой(след.) позиции и такой рекурсивный цикл идет до тех пор, пока функция не получает задание распределять что-то начиная с 10й позиции (а они всего с 0й до 9й), тогда идет проверка - все распределено? (left == 0) если да, то проверяет соответствует ли это 10изначное число условию задачи, если да то выводит его на экран. Если бы таких чисел было несколько, то вывелись бы все. Последний раз редактировалось Stilet; 10.10.2010 в 18:28. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]()
Огромное спасибо.
Если бы не помогли я бы долго еще думал как и что...
Ёж птица гордая, пока не пнешь не полетит.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция преобразовать десятичное число в шестнадцатиричное | ATAMAN200 | Общие вопросы C/C++ | 3 | 03.10.2010 08:10 |
двоичное число→десятичное | astrozombie | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 06.05.2009 08:32 |
Перевести целое положительное десятичное число в шестнадцатеричное счисление | Alfis | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 28.12.2008 20:40 |
Необходимо представить десятичное число в двоичном виде | Xardas | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.01.2008 00:54 |
нужна функция WinApi, которая переводит десятичное число в шестнадцатиричное??? | Morskoivolk | Win Api | 3 | 02.04.2007 18:14 |