![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Димас |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 90 Пол: Мужской Реальное имя: Дима Репутация: ![]() ![]() ![]() |
Добрый день уважаемые форумцы... есть задача:
Написать рекурсивно функцию для вычисления: 1.) Сумы цифр натурального числа 2.) Количество цифр натурального числа Я вообще двоюшник ![]() ![]() написал я так:
Преподаватель сказал что это вообще не рекурсия и не правильно то что я написал... ![]() общем надо бы как то переделать но как не подскажите? ![]() Сообщение отредактировано: Димас - 22.02.2007 16:38 -------------------- Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата общем надо бы как то переделать но как Хотя бы вот так (для нахождения суммы цифр числа, количество цифр находится аналогично - попробуй сделать это сам):function count_sum(n: integer): integer; |
Димас |
![]() ![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 90 Пол: Мужской Реальное имя: Дима Репутация: ![]() ![]() ![]() |
количество цифр находится аналогично - попробуй сделать это сам Пробовал,пробовал и нифинта не понял... и как вижу сам не сделаю((( как сделать рекурсивную функцию для вычисления количества цифр(((( вообще я загнал всё в цыкл и работает на ура и нах мне эта рекурсия... но препод не приймет задачку, потому надо через долбаную рекурсию ![]() ![]() ![]() -------------------- Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
и как вижу сам не сделаю((( как сделать рекурсивную функцию для вычисления количества цифр(((( .... надо через долбаную рекурсию ![]() ![]() ![]() Димас, не падай духом! Рекурсия - это просто. Даже проще, чем циклы ![]() Допустим, ты большой начальник (хотя и не самый). Тебе приходит бумага: сосчитать количество цифр в числе (число на полстраницы). Тебе самому считать лень - это дело подчиненных. Но, поскольку ты хочешь все же вложить немного своего труда, ты стираешь одну цифру. Оставшееся число ты отсылаешь подчиненному. Когда он вернет тебе бумагу, ты прибавишь к его результату 1 (это ты умеешь ![]() Подчиненный тоже начальник - поменьше, чем ты, но достаточно большой.. Он поступает точно так же как ты: стирает одну циферку и отсылает бумагу подчиненному, который, в свою очередь, тоже немаленький начальник... И так далее. В конце концов один из этой цепочки начальников получает пустую бумагу: все цифры уже стерты по одной предыдущими начальниками. Он решает, что это работа вполне посильная для него, и не стоит беспокоить подчиненных. Пишет свою резолюцию: "0 цифр" - и возвращает бумагу обратно. Теперь бумага поднимается вверх. И на каждом этапе число увеличивается на единицу. Что будет в результате? Думаю, ты догадался.. ![]() Делаешь функцию, например CountDigs(M:integer):integer; Она смотрит: если М равно нулю, то значение функции сделать нулем и выйти. Если не ноль - то снова вызвать ту же самую функцию, но не от М, а от M div 10 (стирание цифры), прибавить к ней 1 и выйти с этим результатом. Теперь сможешь сделать? Пиши, что непонятно. Добавлено через 6 мин. mamont001, ты в самом деле думаешь, что типа помог? что человек, не сумевший разобраться в нескольких строчках, написанных volvo, сможет отыскать нужное место в твоем юните и изменить его под себя?.. да еще и в неправильной кодировке.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 15:22 |