Refactor c/difference-of-squares

This commit is contained in:
dwrz
2019-06-07 01:35:25 +00:00
parent e91639751e
commit f8127fdf4a
@@ -1,17 +1,18 @@
#include <stdio.h> #include <stdio.h>
#include <math.h>
int square_of_sum(int n) { int square_of_sum(int n) {
int sum = (int) (n * ((n * 0.5) + 0.5)); int sum = (n * (n + 1)) / 2;
return pow(sum, 2); return sum * sum;
} }
int sum_of_squares(int n) { int sum_of_squares(int n) {
printf("%d\n", n); int sum = 0;
return n;
for (int i = 1; i <= n; i++) sum += i * i;
return sum;
} }
int difference_of_squares(int n) { int difference_of_squares(int n) {
printf("%d\n", n);
return square_of_sum(n) - sum_of_squares(n); return square_of_sum(n) - sum_of_squares(n);
} }