Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
59
Task/Digital-root/PL-I/digital-root-1.pli
Normal file
59
Task/Digital-root/PL-I/digital-root-1.pli
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
digrt: Proc Options(main);
|
||||
/* REXX ***************************************************************
|
||||
* Test digroot
|
||||
**********************************************************************/
|
||||
|
||||
Call digrtst('7');
|
||||
Call digrtst('627615');
|
||||
Call digrtst('39390');
|
||||
Call digrtst('588225');
|
||||
Call digrtst('393900588225');
|
||||
|
||||
digrtst: Proc(n);
|
||||
Dcl n Char(100) Var;
|
||||
Dcl dr Pic'9';
|
||||
Dcl p Dec Fixed(5);
|
||||
Call digroot(n,dr,p);
|
||||
Put Edit(n,dr,p)(skip,a,col(20),f(1),f(3));
|
||||
End;
|
||||
|
||||
digroot: Proc(n,dr,p);
|
||||
/**********************************************************************
|
||||
* Compute the digital root and persistence of the given decimal number
|
||||
* 27.07.2012 Walter Pachl (derived from REXX)
|
||||
**********************************************************************/
|
||||
Dcl n Char(100) Var;
|
||||
Dcl dr Pic'9';
|
||||
Dcl p Dec Fixed(5);
|
||||
Dcl s Pic'(14)Z9';
|
||||
Dcl v Char(100) Var;
|
||||
p=0;
|
||||
v=strip(n); /* copy the number */
|
||||
If length(v)=1 Then
|
||||
dr=v;
|
||||
Else Do;
|
||||
Do While(length(v)>1); /* more than one digit in v */
|
||||
s=0; /* initialize sum */
|
||||
p+=1; /* increment persistence */
|
||||
Do i=1 To length(v); /* loop over all digits */
|
||||
dig=substr(v,i,1); /* pick a digit */
|
||||
s=s+dig; /* add to the new sum */
|
||||
End;
|
||||
/*Put Skip Data(v,p,s);*/
|
||||
v=strip(s); /* the 'new' number */
|
||||
End;
|
||||
dr=Decimal(s,1,0);
|
||||
End;
|
||||
Return;
|
||||
End;
|
||||
|
||||
strip: Proc(x) Returns(Char(100) Var);
|
||||
Dcl x Char(*);
|
||||
Dcl res Char(100) Var Init('');
|
||||
Do i=1 To length(x);
|
||||
If substr(x,i,1)>' ' Then
|
||||
res=res||substr(x,i,1);
|
||||
End;
|
||||
Return(res);
|
||||
End;
|
||||
End;
|
||||
15
Task/Digital-root/PL-I/digital-root-2.pli
Normal file
15
Task/Digital-root/PL-I/digital-root-2.pli
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
digital: procedure options (main); /* 29 April 2014 */
|
||||
declare 1 pict union,
|
||||
2 x picture '9999999999999',
|
||||
2 d(13) picture '9';
|
||||
declare ap fixed, n fixed (15);
|
||||
|
||||
do n = 5, 627615, 39390, 588225, 393900588225, 99999999999;
|
||||
x = n;
|
||||
do ap = 1 by 1 until (x < 10);
|
||||
x = sum(d);
|
||||
end;
|
||||
put skip data (n, x, ap);
|
||||
end;
|
||||
|
||||
end digital;
|
||||
Loading…
Add table
Add a link
Reference in a new issue