29 lines
701 B
Text
29 lines
701 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))
|
|
}
|
|
}
|