Travis build: 1030
This commit is contained in:
@ -3039,15 +3039,14 @@ fibonacciUntilNum(10); // [ 0, 1, 1, 2, 3, 5, 8 ]
|
||||
|
||||
Calculates the greatest common divisor between two or more numbers/arrays.
|
||||
|
||||
The `helperGcd `function uses recursion.
|
||||
The inner `_gcd` function uses recursion.
|
||||
Base case is when `y` equals `0`. In this case, return `x`.
|
||||
Otherwise, return the GCD of `y` and the remainder of the division `x/y`.
|
||||
|
||||
```js
|
||||
const gcd = (...arr) => {
|
||||
let data = [].concat(...arr);
|
||||
const helperGcd = (x, y) => (!y ? x : gcd(y, x % y));
|
||||
return data.reduce((a, b) => helperGcd(a, b));
|
||||
const _gcd = (x, y) => (!y ? x : gcd(y, x % y));
|
||||
return [].concat(...arr).reduce((a, b) => _gcd(a, b));
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@ -644,10 +644,9 @@ own individual rating by supplying it as the third argument.
|
||||
);
|
||||
};</span>
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">fibonacciUntilNum</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">);</span> <span class="token comment">// [ 0, 1, 1, 2, 3, 5, 8 ]</span>
|
||||
</pre><button class="primary clipboard-copy"><img src="clipboard.svg" alt="clipboard"> Copy to clipboard</button></div></div><div class="card fluid"><h3 id="gcd" class="section double-padded">gcd</h3><div class="section double-padded"><p>Calculates the greatest common divisor between two or more numbers/arrays.</p><p>The <code>helperGcd</code>function uses recursion. Base case is when <code>y</code> equals <code>0</code>. In this case, return <code>x</code>. Otherwise, return the GCD of <code>y</code> and the remainder of the division <code>x/y</code>.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||||
<span class="token keyword">let</span> data <span class="token operator">=</span> <span class="token punctuation">[].</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">);</span>
|
||||
<span class="token keyword">const</span> <span class="token function-variable function">helperGcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">!</span>y <span class="token operator">?</span> x <span class="token punctuation">:</span> <span class="token function">gcd</span><span class="token punctuation">(</span>y<span class="token punctuation">,</span> x <span class="token operator">%</span> y<span class="token punctuation">));</span>
|
||||
<span class="token keyword">return</span> data<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">helperGcd</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">));
|
||||
</pre><button class="primary clipboard-copy"><img src="clipboard.svg" alt="clipboard"> Copy to clipboard</button></div></div><div class="card fluid"><h3 id="gcd" class="section double-padded">gcd</h3><div class="section double-padded"><p>Calculates the greatest common divisor between two or more numbers/arrays.</p><p>The inner <code>_gcd</code> function uses recursion. Base case is when <code>y</code> equals <code>0</code>. In this case, return <code>x</code>. Otherwise, return the GCD of <code>y</code> and the remainder of the division <code>x/y</code>.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||||
<span class="token keyword">const</span> <span class="token function-variable function">_gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">!</span>y <span class="token operator">?</span> x <span class="token punctuation">:</span> <span class="token function">gcd</span><span class="token punctuation">(</span>y<span class="token punctuation">,</span> x <span class="token operator">%</span> y<span class="token punctuation">));</span>
|
||||
<span class="token keyword">return</span> <span class="token punctuation">[].</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">).</span><span class="token function">reduce</span><span class="token punctuation">((</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">_gcd</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">));
|
||||
};</span>
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">gcd</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">36</span><span class="token punctuation">);</span> <span class="token comment">// 4</span>
|
||||
</pre><button class="primary clipboard-copy"><img src="clipboard.svg" alt="clipboard"> Copy to clipboard</button></div></div><div class="card fluid"><h3 id="geometricprogression" class="section double-padded">geometricProgression</h3><div class="section double-padded"><p>Initializes an array containing the numbers in the specified range where <code>start</code> and <code>end</code> are inclusive and the ratio between two terms is <code>step</code>. Returns an error if <code>step</code> equals <code>1</code>.</p><p>Use <code>Array.from()</code>, <code>Math.log()</code> and <code>Math.floor()</code> to create an array of the desired length, <code>Array.map()</code> to fill with the desired values in a range. Omit the second argument, <code>start</code>, to use a default value of <code>1</code>. Omit the third argument, <code>step</code>, to use a default value of <code>2</code>.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">geometricProgression</span> <span class="token operator">=</span> <span class="token punctuation">(</span>end<span class="token punctuation">,</span> start <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">,</span> step <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">=></span>
|
||||
|
||||
Reference in New Issue
Block a user