Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 60
от 27.05.2005, 18:30

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 4


Вопрос № 21188: Подскажите, как определить частоту появления в числе n! цифры k (n<=100)...

Вопрос № 21188
Подскажите, как определить частоту появления в числе n! цифры k (n<=100)
Отправлен: 22.05.2005, 18:27
Вопрос задал: Lonelywolf (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Alex Diesel
Здравствуйте, Lonelywolf!<br>Ну можно попытаться посчитать число n!, а потом делить то что получиться на 10 брать остаток от деления и если этот остаток от деления равен k то увеличивать на один какой-нить счетчик. Ну еще нужно знать сколько вообще цифр в числе n!. А в конце достаточно количество цифр k разделить на общее число цифр, вот и получится частота появления. Это вариант решения который приходит в голову, если не думать.
Ответ отправил: Alex Diesel (статус: 4-ый класс)
Отправлен: 22.05.2005, 19:21

Отвечает: Master89
Здравствуйте, Lonelywolf!
Думаю, преобразовать это число в строку, а в строке произвести поиск обычным образом.
Ответ отправил: Master89 (статус: 3-ий класс)
Отправлен: 22.05.2005, 19:34

Отвечает: Snowm@n
Здравствуйте, Lonelywolf!
Нужно использовать "длинную арифметику" (то есть реализовать умножение столбиком). В приложении мой код, вычисляющий факториал, вам остается только посчитать цифры.
p.s. Цифры хранятся "пачками" по 4, без значащих нулей в массиве digit

Приложение:

Ответ отправил: Snowm@n (статус: Студент)
Отправлен: 23.05.2005, 09:02

Отвечает: sir henry
Здравствуйте, Lonelywolf!
1. Перевести число n в строку и k в символ.
2. Завести переменную под временное хранение этой строки (зачем - см далее).
3. Завести переменную-счетчик, например Kol-vo: integer;
4. С помощью функции Pos() найти позицию вхождения k в n (лучше это делать в копии, если нужно сохранить строку с n в исходном виде) и заменить символ в этой позиции чем-нибудь, например на #253. :) Затем сделать Inc(Kol-vo), если
5. Повторять пункт 4, пока функция Pos() возвращает число отличное от нуля.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.05.2005, 09:16


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.pasplus
Отписаться
Вспомнить пароль

В избранное