Задача 6 Урок 20

Задача 6 Урок 20

Дано натуральное число N. Вычислите сумму его цифр.
(При решении этой задачи нельзя использовать строки, списки, массивы (ну и циклы, разумеется). Разрешена только рекурсия и целочисленная арифметика. Используйте операцию получения остатка от деления, и операцию целочисленного деления).

var N,s : integer;

function Num(N,s: integer) : integer;
begin
  s := s + N mod 10;
  N := N div 10;
  if (N > 0) then
    Num(N,s)
  else
    write(s);
end;

begin
  readln(N);
  s := 0;
  Num(N,s);
  readln;
end.   
vedro-compota's picture

1) функция должна возвращать сумму
2) решить с одним аргументом

_____________
матфак вгу и остальная классика =)

var N,s : integer;

function Num(N,s: integer) : integer;
begin
 if(N > 0) then
   result :=   Num((N div 10),s + N mod 10)
 else
   result:= s ;
end;

begin
  readln(N);
  s := 0;
  writeln(Num(N,s));
  readln;
end. 
vedro-compota's picture

по аналогии с задачей http://fkn.ktu10.com/?q=node/13389 можно использовать 1 аргумент в функции

_____________
матфак вгу и остальная классика =)

var N :integer;

function summ(N :integer) :integer;
begin
  if (N < 10) then
    result := N
  else
    result := N mod 10 + summ(N div 10);
end;

begin
  readln(N);
  writeln(summ(N));
  readln();
end.  
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)