tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
36
Task/Pascals-triangle/Prolog/pascals-triangle-1.pro
Normal file
36
Task/Pascals-triangle/Prolog/pascals-triangle-1.pro
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
pascal(N) :-
|
||||
pascal(1, N, [1], [[1]|X]-X, L),
|
||||
maplist(my_format, L).
|
||||
|
||||
pascal(Max, Max, L, LC, LF) :-
|
||||
!,
|
||||
make_new_line(L, NL),
|
||||
append_dl(LC, [NL|X]-X, LF-[]).
|
||||
|
||||
pascal(N, Max, L, NC, LF) :-
|
||||
build_new_line(L, NL),
|
||||
append_dl(NC, [NL|X]-X, NC1),
|
||||
N1 is N+1,
|
||||
pascal(N1, Max, NL, NC1, LF).
|
||||
|
||||
build_new_line(L, R) :-
|
||||
build(L, 0, X-X, R).
|
||||
|
||||
build([], V, RC, RF) :-
|
||||
append_dl(RC, [V|Y]-Y, RF-[]).
|
||||
|
||||
build([H|T], V, RC, R) :-
|
||||
V1 is V+H,
|
||||
append_dl(RC, [V1|Y]-Y, RC1),
|
||||
build(T, H, RC1, R).
|
||||
|
||||
append_dl(X1-X2, X2-X3, X1-X3).
|
||||
|
||||
% to have a correct output !
|
||||
my_format([H|T]) :-
|
||||
write(H),
|
||||
maplist(my_writef, T),
|
||||
nl.
|
||||
|
||||
my_writef(X) :-
|
||||
writef(' %5r', [X]).
|
||||
18
Task/Pascals-triangle/Prolog/pascals-triangle-2.pro
Normal file
18
Task/Pascals-triangle/Prolog/pascals-triangle-2.pro
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
?- pascal(15).
|
||||
1
|
||||
1 1
|
||||
1 2 1
|
||||
1 3 3 1
|
||||
1 4 6 4 1
|
||||
1 5 10 10 5 1
|
||||
1 6 15 20 15 6 1
|
||||
1 7 21 35 35 21 7 1
|
||||
1 8 28 56 70 56 28 8 1
|
||||
1 9 36 84 126 126 84 36 9 1
|
||||
1 10 45 120 210 252 210 120 45 10 1
|
||||
1 11 55 165 330 462 462 330 165 55 11 1
|
||||
1 12 66 220 495 792 924 792 495 220 66 12 1
|
||||
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
|
||||
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
|
||||
1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1
|
||||
true.
|
||||
Loading…
Add table
Add a link
Reference in a new issue