Skip to content

Commit 0af1e86

Browse files
committed
simplifyFraction
1 parent e11d09d commit 0af1e86

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

deep-dark-fraction/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ export default function fraction(cont: number[]): number[] {
1616
result,
1717
),
1818
],
19-
false,
2019
);
2120
}
2221

fraction-addition-and-subtraction/index.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,33 @@ import { deduplication } from "./deduplication.ts";
33
import { Fraction } from "./Fraction.ts";
44
import { parseFraction } from "./parseFraction.ts";
55
import { FractionToString } from "./Fraction.ts";
6-
export function fractionAdd(fractions: Fraction[], simplify = true): Fraction {
6+
export function fractionAdd(fractions: Fraction[]): Fraction {
77
const denominator = deduplication(
88
fractions.map((f) => f.denominator),
99
).reduce((a, b) => a * b);
1010
const molecular = fractions
1111
.map((f) => (f.sign * f.molecular * denominator) / f.denominator)
1212
.reduce((a, b) => a + b);
13-
const gcd = simplify ? greatestCommonDivisor(molecular, denominator) : 1;
13+
14+
return new Fraction({
15+
denominator: denominator,
16+
molecular: molecular,
17+
});
18+
}
19+
export function simplifyFraction(fraction: Fraction) {
20+
const { molecular, denominator } = fraction;
21+
const gcd = greatestCommonDivisor(molecular, denominator);
1422
return new Fraction({
15-
denominator: denominator / gcd,
16-
molecular: molecular / gcd,
23+
sign: fraction.sign,
24+
denominator: fraction.denominator / gcd,
25+
molecular: fraction.molecular / gcd,
1726
});
1827
}
1928
function fractionAddition(expression: string): string {
2029
const fractions = parseFraction(expression);
2130

2231
return FractionToString(
23-
fractionAdd(fractions),
32+
simplifyFraction(fractionAdd(fractions)),
2433
);
2534
}
2635
export default fractionAddition;

0 commit comments

Comments
 (0)