Найти цифровой корень числа

StudentAue1337

дано n число найти цифровой корень, который собой представляет целое число
7 ответов

StudentAue1337

Зайдите в Поиск, расширенный поиск, ключевые слова Цифровой корень, раздел Паскаль.


StudentAue1337

Или посмотрите похожие темы в конце этой страницы.Простейший, но не очевидный способ нахождения цифрового корня:
var
  n: integer;
 
begin
  write('n = ');
  readln(n);
  n := abs(n);
  while n > 9 do n := n div 10 + n mod 10;
  write('Digital root = ', n);
  readln
end.


StudentAue1337

if n = 0 then Writeln(0)
else if n mod 9 = 0 then Writeln(9)
else Writeln(n mod 9);


StudentAue1337

Новичок, а зачем первое условие? Ведь и так 0 mod 9 = 0.


StudentAue1337

bormant, но ведь для 0 ответ 0 же? А для 9, 18, 27, ... - 9


StudentAue1337

Новичок, а, да, проглядел что-то...То есть, эти три if только чтобы не писать
  WriteLn(1+((n-1) mod 9));


StudentAue1337

bormant, видел такой вариант. Не уверен что это лучше чем 3 случая рассмотреть. Оно может и лучше, но с моим кодом имхо будет понятнее что это за магия в одну строчку. bormant, кстати скобки вроде как лишние
WriteLn(1+(n-1) mod 9);