Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
14
Task/Middle-three-digits/Prolog/middle-three-digits-1.pro
Normal file
14
Task/Middle-three-digits/Prolog/middle-three-digits-1.pro
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
middle_3_digits(Number, [D1,D2,D3]) :-
|
||||
verify_middle_3_able(Number, Digits),
|
||||
append(FrontDigits, [D1,D2,D3| BackDigits], Digits),
|
||||
same_length(FrontDigits, BackDigits).
|
||||
|
||||
verify_middle_3_able(Number, Digits) :-
|
||||
must_be(number, Number),
|
||||
AbsNumber is abs(Number),
|
||||
number_chars(AbsNumber, Digits),
|
||||
length(Digits, NumDigits),
|
||||
( 3 > NumDigits -> domain_error('at least 3 digits', Number)
|
||||
; 0 is NumDigits mod 2 -> domain_error('odd number of digits', Number)
|
||||
; true
|
||||
).
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
test_correct :-
|
||||
TestCases = [123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345],
|
||||
foreach( ( member(TestCase, TestCases),
|
||||
middle_3_digits(TestCase, Result) ),
|
||||
format('Middle 3 digits of ~w ~30|: ~w~n', [TestCase, Result])
|
||||
).
|
||||
Loading…
Add table
Add a link
Reference in a new issue