Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/Middle-three-digits/Pascal/middle-three-digits.pas
Normal file
37
Task/Middle-three-digits/Pascal/middle-three-digits.pas
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
program Midl3dig;
|
||||
{$IFDEF FPC}
|
||||
{$MODE Delphi} //result /integer => Int32 aka longInt etc..
|
||||
{$ELSE}
|
||||
{$APPTYPE console} // Delphi
|
||||
{$ENDIF}
|
||||
uses
|
||||
sysutils; //IntToStr
|
||||
function GetMid3dig(i:NativeInt):Ansistring;
|
||||
var
|
||||
n,l: NativeInt;
|
||||
Begin
|
||||
setlength(result,0);
|
||||
//n = |i| jumpless abs
|
||||
n := i-((ORD(i>0)-1)AND (2*i));
|
||||
//calculate digitcount
|
||||
IF n > 0 then
|
||||
l := trunc(ln(n)/ln(10))+1
|
||||
else
|
||||
l := 1;
|
||||
if l<3 then Begin write('got too few digits'); EXIT; end;
|
||||
If Not(ODD(l)) then Begin write('got even number of digits'); EXIT; end;
|
||||
result:= copy(IntToStr(n),l DIV 2,3);
|
||||
end;
|
||||
const
|
||||
Test : array [0..16] of NativeInt =
|
||||
( 123,12345,1234567,987654321,10001,-10001,
|
||||
-123,-100,100,-12345,1,2,-1,-10,2002,-2002,0);
|
||||
var
|
||||
i,n : NativeInt;
|
||||
Begin
|
||||
For i := low(Test) to High(Test) do
|
||||
Begin
|
||||
n := Test[i];
|
||||
writeln(n:9,': ',GetMid3dig(Test[i]));
|
||||
end;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue