Middle three digits: Difference between revisions

Content added Content deleted
Line 1,787: Line 1,787:
</pre>
</pre>
=={{header|Elena}}==
=={{header|Elena}}==
ELENA 3.4 :
ELENA 4.x :
<lang elena>import system'routines.
<lang elena>import system'routines;
import extensions.
import extensions;
middleThreeDigits(int n)
middleThreeDigits(int n)
{
[
literal s := n absolute; toLiteral.
string s := n.Absolute.toString();
int len := s length.
int len := s.Length;
if(len<3)
if(len<3)
[
{
InvalidArgumentException new:"n must have 3 digits or more"; raise
InvalidArgumentException.new:"n must have 3 digits or more".raise()
];
}
if(len isEven)
else if(len.isEven())
[
{
InvalidArgumentException new:"n must have an odd number of digits"; raise
InvalidArgumentException.new:"n must have an odd number of digits".raise()
].
};
int mid := len / 2.
int mid := len / 2;
^ s Substring(mid-1,3).
^ s.Substring(mid-1,3)
}
]
public program
public program()
{
[
(123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0)
new int[]{123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0}
forEach(:n)
.forEach:(n)
[
{
console printLine("middleThreeDigits(",n,"):",middleThreeDigits(n) | if(:e)(e message))
console.printLine("middleThreeDigits(",n,"):",middleThreeDigits(n) | on:(e => e.Message))
]
}
]</lang>
}</lang>
{{out}}
{{out}}
<pre>
<pre>