-
Notifications
You must be signed in to change notification settings - Fork 0
/
Easy Line
44 lines (28 loc) · 1.21 KB
/
Easy Line
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
In the drawing below we have a part of the Pascal's triangle, horizontal lines are numbered from zero (top).
We want to calculate the sum of the squares of the binomial coefficients on a given horizontal line with a function called easyline (or easyLine or easy-line).
Can you write a program which calculate easyline(n) where n is the horizontal line number?
The function will take n (with: n>= 0) as parameter and will return the sum of the squares of the binomial coefficients on line n.
Examples:
easyline(0) => 1
easyline(1) => 2
easyline(4) => 70
easyline(50) => 100891344545564193334812497256
Ref:
http://mathworld.wolfram.com/BinomialCoefficient.html
alternative text
Note:
In Javascript, Coffeescript, Typescript, C++, PHP, C, R, Nim, Fortran to get around the fact that we have no big integers the function easyLine(n) will in fact return
round(log(easyline(n)))
and not the easyline(n) of the other languages.
So, in Javascript, Coffeescript, Typescript, C++, PHP, R, Nim, C, Fortran:
easyLine(0) => 0
easyLine(1) => 1
easyLine(4) => 4
easyLine(50) => 67
*/
export function easyLine(n: number): number {
for (var i = 1, sum = 1; i <= n; i++)
sum *= (n + i) / i;
return Math.round(Math.log(sum));
}