diff options
| author | Federico I <git@federicoigne.com> | 2020-03-17 20:04:00 +0000 |
|---|---|---|
| committer | Federico Igne <git@federicoigne.com> | 2021-11-03 18:54:52 +0000 |
| commit | 9975f9635cd1c2c58b6c1dbe47585859b0b1d573 (patch) | |
| tree | a9a48f5940f440549ad76d52298d51d9efa509c3 /difference-of-squares/src/lib.rs | |
| parent | 1dfcb5c8c04f94a02c6527cac848f6411c8af32f (diff) | |
| download | exercism-9975f9635cd1c2c58b6c1dbe47585859b0b1d573.tar.gz exercism-9975f9635cd1c2c58b6c1dbe47585859b0b1d573.zip | |
[rust] Difference of Squares
Diffstat (limited to 'difference-of-squares/src/lib.rs')
| -rw-r--r-- | difference-of-squares/src/lib.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/difference-of-squares/src/lib.rs b/difference-of-squares/src/lib.rs new file mode 100644 index 0000000..4599733 --- /dev/null +++ b/difference-of-squares/src/lib.rs | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | /// Implements square of Gauss' formula | ||
| 2 | pub fn square_of_sum(n: u32) -> u32 { | ||
| 3 | (n * (n + 1) / 2).pow(2) | ||
| 4 | } | ||
| 5 | |||
| 6 | /// Implements the formula reported in Wolfram|Alpha at this | ||
| 7 | /// [link](https://www.wolframalpha.com/input/?i=sum+of+squares&assumption=%7B%22F%22%2C+%22SumOfSquaresOfIntegers%22%2C+%22sumlowerlimit%22%7D+-%3E%221%22&assumption=%7B%22F%22%2C+%22SumOfSquaresOfIntegers%22%2C+%22sumupperlimit2%22%7D+-%3E%22n%22) | ||
| 8 | pub fn sum_of_squares(n: u32) -> u32 { | ||
| 9 | n * (1 + n) * (1 + 2 * n) / 6 | ||
| 10 | } | ||
| 11 | |||
| 12 | pub fn difference(n: u32) -> u32 { | ||
| 13 | square_of_sum(n) - sum_of_squares(n) | ||
| 14 | } | ||
