29 lines
698 B
Text
29 lines
698 B
Text
import system'routines;
|
|
import extensions;
|
|
|
|
middleThreeDigits(int n)
|
|
{
|
|
string s := n.Absolute.toString();
|
|
int len := s.Length;
|
|
if(len<3)
|
|
{
|
|
InvalidArgumentException.new:"n must have 3 digits or more".raise()
|
|
}
|
|
else if(len.isEven())
|
|
{
|
|
InvalidArgumentException.new:"n must have an odd number of digits".raise()
|
|
};
|
|
|
|
int mid := len / 2;
|
|
|
|
^ s.Substring(mid-1,3)
|
|
}
|
|
|
|
public program()
|
|
{
|
|
new int[]::(123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0)
|
|
.forEach:(n)
|
|
{
|
|
console.printLine("middleThreeDigits(",n,"):",middleThreeDigits(n) | on:(e => e.Message))
|
|
}
|
|
}
|