Middle three digits: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
No edit summary |
||
Line 5,893: | Line 5,893: | ||
Input: -2002 Result: Not odd number of digits! |
Input: -2002 Result: Not odd number of digits! |
||
Input: 0 Result: Too few digits! </pre> |
Input: 0 Result: Too few digits! </pre> |
||
=={{header|Vlang}}== |
|||
<syntaxhighlight lang="vlang">import math |
|||
const |
|||
( |
|||
valid = [123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345] |
|||
invalid = [1, 2, -1, -10, 2002, -2002, 0] |
|||
) |
|||
fn main() { |
|||
for elem in valid {println(middle(elem))} |
|||
for elem in invalid {println(middle(elem))} |
|||
} |
|||
fn middle(num int) string { |
|||
mut strip := math.abs(num).str() |
|||
if strip.len < 3 {return 'Error: $num has less than 3 digits'} |
|||
if strip.len % 2 == 0 {return 'Error: $num has an even number of digits'} |
|||
start := (strip.len / 2) - 1 |
|||
return strip.substr(start, start + 3) |
|||
} |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
123 |
|||
234 |
|||
345 |
|||
654 |
|||
000 |
|||
000 |
|||
123 |
|||
100 |
|||
100 |
|||
234 |
|||
Error: 1 has less than 3 digits |
|||
Error: 2 has less than 3 digits |
|||
Error: -1 has less than 3 digits |
|||
Error: -10 has less than 3 digits |
|||
Error: 2002 has an even number of digits |
|||
Error: -2002 has an even number of digits |
|||
Error: 0 has less than 3 digits |
|||
</pre> |
|||
=={{header|Wart}}== |
=={{header|Wart}}== |