Jump to content

Middle three digits: Difference between revisions

GP
(→‎{{header|REXX}}: clarified what an integer (in the statement) was being referred to (the value, not the name). -- ~~~~)
(GP)
Line 896:
0: failure: need >= 3 digits
</pre>
 
=={{header|PARI/GP}}==
{{works with|PARI/GP|2.6.0}}
<lang parigp>middle(n)=my(v=digits(n));if(#v>2&&#v%2,100*v[#v\2]+10*v[#v\2+1]+v[#v\2+2],"no middle 3 digits");
apply(middle,[123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0])</lang>
Output:
<pre>%1 = [123, 234, 345, 654, 0, 0, 123, 100, 100, 234, "no middle 3 digits", "no middle 3 digits", "no middle 3 digits", "no middle 3 digits", "no middle 3 digits", "no middle 3 digits", "no middle 3 digits"]</pre>
 
For earlier versions <code>digits</code> can be defined as
<lang parigp>digits(n)=eval(Vec(Str(n)))</lang>
or more efficiently as
<lang parigp>digits(n)=Vec(apply(n->n-48,Vectorsmall(Str(n))))</lang>
 
=={{header|Perl}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.