Помощь - Поиск - Пользователи - Календарь
Полная версия: Переполнение стека
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Zundell
var
n,s:word;

Function koren(n:word):word;
var
s:word;
begin
if n<=0 then
koren:=n
else begin
s:=0;
repeat
s:=s+ n mod 10;
n:=n div 10;
until
n=0;
koren:=koren(s);
end
end;

begin
write('Vvedite n-');
readln(n);
koren(n);
write('vot-',s);
readln;
end.


Посмотрите пожалуйста..из-за чего выдает ошибку?спасибо заранее
klem4
Что должна делать твоя функция ?

ps у теья s всегда > 0 скорее всего ...
volvo
Ну, во первых, если ты находишь пресловутый "корень числа" (сумму его цифр, потом сумму цифр суммы, ... пока эта сумма не будет состоять из одной цифры), то условие должно быть
  if n < 10 then koren:=n
else ...

, а во-вторых, у тебя глобальная S перекрывается локальной...

Кстати, расскажи мне, КАК переменная типа Word может быть отрицательной?

Распечатывать значение корня надо бы так:
write('vot - ', koren(n));
Zundell
Все разобралсо..спасиба большое.все работает
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.