التمرين الثاني
امكانية استعمال MOD et DIV
كود:
PROGRAM SOMME;
uses wincrt;
var n:integer;
function s(n:integer):integer;
begin
if n<10 then
s:=n
else
s:=N MOD 10+s(n div 10);
end;
begin
repeat
readln(n);
until n>=0;
writeln(s(n));
end.
Une solution itérative
كود:
Programme somme ;
Uses wincrt ;
Var
N,s :integer ;
Begin
Readln(n) ;
Repeat
S :=s+s mod 10 ;
N := n div 10 ;
Until n=0 ;
Writeln(s) ;
باستعمال chaine
كود:
Program somme ;
Uses wincrt ;
Var
N,s,i,d,e :integer ;
ch:string;
Begin
Readln(n) ;
str(n,ch);
for i:=1 to length(ch) do
begin
val(ch[i],d,e);
s:=s+d;
end;
writeln(s);
end.
Une solution récursive
كود:
Program somme ;
Uses wincrt ;
Var
N:integer ;
ch:string;
function som(s:string):integer;
var
d,e:integer;
begin
if length(s)=1 then
begin
val(s,d,e);
som:=d;
end
else
begin
val(s[1],d,e);
som:=d+som(copy(s,2,length(s)-1));
end;
end;
Begin
Readln(n) ;
str(n,ch);
writeln(som(ch));
end.