blob: 050600444b513b6d87c9e04a082a8d0c2eea1d7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# coding=utf-8
id = 179
name = 'pascal/3'
slug = 'pascal's triangle'
description = '''\
<p>The first five rows of the Pascal's triangle look like this:</p>
<pre>
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
</pre>
<p>
Each row begins and ends with 1. Every other element can be obtained as a sum of the two values above it. Write the predicate <code>pascal(I,J,N)</code> that returns the <code>J</code>-th value in the <code>I</code>-th column of the Pascal's triangle. Your solution should return exactly one answer for any input (the <code>I</code> and <code>J</code> arguments start counting with 0; you can assume that 0 ≤ <code>J</code> ≤ <code>I</code>).
<pre>
?- pascal(0, 0, N).
N = 1.
?- pascal(2, 1, N).
N = 2.
?- pascal(4, 3, N).
N = 4.
</pre>'''
hint = {}
|