Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сумма цифр числа, Паскаль, Рекурсия 
V
    Опции темы
BlackMax
Дата 17.3.2006, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.3.2006
Где: Молдова

Репутация: нет
Всего: нет



Помогите плз решить задачку, у самого мозгов не хватает!

Разработайте подпрограмму (function, procedure) которая подсчитает сумму цифр числа n. Проблема втом что её нужно сделать рекурсивно, чтобы подпрограмма сама себя вызывала! хелп!
PM MAIL   Вверх
darkart
Дата 17.3.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: 26
Всего: 31



Код

program SumRec;
function GetSum(x:integer):integer;
begin
  if x>9 then{если длина числа>1}
    GetSum:=x mod 10+GetSum(x div 10)
  else{иначе}
    GetSum:=x;
end;
var
  x:integer;
begin
  writeln('Please enter a number:');
  readln(x);
  writeln('Result:',GetSum(x));
  readln;
end.


Это сообщение отредактировал(а) darkart - 17.3.2006, 22:14
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 17.3.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



строка 7 - это ты на автомате написАл? smile



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Pakshin A. S.
Дата 17.3.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 5
Всего: 61



Кстати, а не факт, что число n есть больше нуля... smile Алгоритм не подходит для отрицательных чисел...
PM   Вверх
darkart
Дата 17.3.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: 26
Всего: 31



Цитата(Akina @ 17.3.2006, 21:47 Найти цитируемый пост)
строка 7 - это ты на автомате написАл? 

Упсь smile
[ctrl]-[c], [ctrl]-[v] знаете ли...
Исправил
Цитата

Кстати, а не факт, что число n есть больше нуля...  Алгоритм не подходит для отрицательных чисел...

Ну и как будем считать сумму цифр отрицательного числа? smile

Это сообщение отредактировал(а) darkart - 17.3.2006, 22:18
PM MAIL WWW ICQ Skype GTalk   Вверх
Fixin
Дата 17.3.2006, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Скока народу из Воронежа smile
Цитата(darkart @ 17.3.2006, 22:15 Найти цитируемый пост)
Ну и как

Ну и поправь...
PM MAIL ICQ   Вверх
BlackMax
Дата 17.3.2006, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.3.2006
Где: Молдова

Репутация: нет
Всего: нет



спасибо всем! я даже не расчитывал на столь скорый ответ! с меня +, только поставить не могу!smile
PM MAIL   Вверх
Pakshin A. S.
Дата 17.3.2006, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 5
Всего: 61



Цитата(darkart @ 17.3.2006, 22:15 Найти цитируемый пост)
Ну и как будем считать сумму цифр отрицательного числа?

writeln('Result:',GetSum(abs(x))); smile smile smile
PM   Вверх
Fixin
Дата 18.3.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Цитата(BlackMax @ 17.3.2006, 23:44 Найти цитируемый пост)
с меня +
Сделано.

PM MAIL ICQ   Вверх
Dark89
  Дата 1.12.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



Ребята помогите решить задачу (в турбо паскале 7.1) на зачет немогу решить smile :

Пусть значение функции F(n) равно количеству букв в записи числа n русскими словами
F(1)=1 (один)
F(3)=3 (три)
F(42)=42 (сорок два)
Напечатать все натуральные числа n меньше 100 для которых F(n)=n

Очень надо сдать прошу напишите полное решение задачи или вылажите решение сохраненное в .pas !!!!!!!!!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.