Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2010, 10:40   #1
fbsd
 
Регистрация: 14.12.2009
Сообщений: 9
По умолчанию рекурсивная функция определения числового корня числа(Pascal)

Приветствую.
Задача: написать рекурсивную ф-ю, определяющую числовой корень числа.
Н: 654231=21=3

Просто нахождение суммы цифр описал, а вот как сделать чтоб складывать повторно, сразу мозг в стопор входит.
Код:
program rekyr;
uses wincrt;
var chislo:longint;
{==================}
function Sum(a:longint):byte;
 begin
   if (a<10)
    then Sum:=a
      else Sum:=a mod 10+Sum(a div 10)
 end;
{====================}
begin
  clrscr;
  write('chislo=');
  readln(chislo);
  writeln('Summa cifr=',Sum(chislo));
  readln
end.
благодарю=)

Последний раз редактировалось fbsd; 10.06.2010 в 11:15.
fbsd вне форума Ответить с цитированием
Старый 10.06.2010, 14:16   #2
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Цитата:
числовой корень числа
это что такое? чет про такое я не слыхал. Можете поподробней описать.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 10.06.2010, 14:40   #3
fbsd
 
Регистрация: 14.12.2009
Сообщений: 9
По умолчанию

ну, вот
ввожу число 6222345
сумма цифр 24
сумма цифр 6 - это ч.к.ч. исходного числа

хотя если признаться, то я такого понятия и сам не встречал=))
просто задание поставили и пояснили
вот не пойму как мне сделать N-ое вычисление суммы цифр

Последний раз редактировалось fbsd; 10.06.2010 в 14:46.
fbsd вне форума Ответить с цитированием
Старый 10.06.2010, 16:37   #4
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Вот, могу предложить такой вариант, но вас наверно такой вариант не устроит...
Код:
program Project1;
var chislo:longint;
function Sum(a:longint):byte;
 begin
   if (a<10)
    then Sum:=a
      else Sum:=a mod 10+Sum(a div 10);
 end;
{====================}

begin
  write('chislo=');
  readln(chislo);
  while chislo>9 do
   chislo:=Sum(chislo);
  writeln(chislo);
  readln
end.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 11.06.2010, 05:41   #5
fbsd
 
Регистрация: 14.12.2009
Сообщений: 9
По умолчанию

благодарствую, попробую ф-ей реализовать
fbsd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Рекурсивная функция Trinity13 Помощь студентам 10 15.10.2017 13:21
Рекурсивная функция C++ Buryy_Mishka Помощь студентам 0 31.05.2010 00:27
Рекурсивная функция Bernuar Помощь студентам 2 06.04.2010 10:07
Си++. Рекурсивная функция. Diamond2107 Помощь студентам 6 02.12.2009 19:48
Функция для определения числа вхождений подстроки в строку motorway Microsoft Office Excel 1 15.07.2009 23:28