-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathfraction.js
More file actions
88 lines (81 loc) · 1.77 KB
/
Copy pathfraction.js
File metadata and controls
88 lines (81 loc) · 1.77 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class fraction
{
constructor( num , den )
{
this.num = num;
this.den = den;
}
add(x)
{
var sum = add_fraction(this,x);
console.log("%d/%d + %d/%d = %d/%d = %d",this.num,this.den,x.num,x.den,sum.num,sum.den,sum.num/sum.den);
}
subtract(x)
{
var subtract = subtract_fraction(this,x);
console.log("%d/%d",subtract.num,subtract.den);
}
multiply(x)
{
var multi = multi_fraction(this,x);
console.log("%d/%d",multi.num,multi.den);
}
divide(x)
{
var div = divide_fraction(this,x);
console.log("(%d/%d)/(%d/%d) = %d/%d = %d",this.num,this.den,x.num,x.den,div.num,div.den,div.num/div.den);
}
reciprocal()
{
console.log("%d/%d",this.den,this.num);
}
}
function gcd(a,b)
{
var gcd=1;
for(let i=2;(i<=a&&i<=b);i++)
{
if(a%i==0&&b%i==0)
{
gcd=i;
}
}
return gcd;
}
function add_fraction(x,y)
{
var hcf=gcd(x.den,y.den);
var result = new fraction;
result.den = x.den*y.den / hcf;
result.num = x.num*(result.den/x.den) + y.num*(result.den/y.den);
return result;
}
function subtract_fraction(x,y)
{
var hcf=gcd(x.den,y.den);
var result = new fraction;
result.den = x.den*y.den / hcf;
result.num = x.num*(result.den/x.den) - y.num*(result.den/y.den);
return result;
}
function multi_fraction(x,y)
{
var result = new fraction;
result.num = x.num * y.num;
result.den = x.den * y.den;
return result;
}
function divide_fraction(x,y)
{
var result = new fraction;
result.num = x.num / y.num;
result.den = x.den / y.den;
return result;
}
function main()
{
var x = new fraction(1,2);
var y = new fraction(1,2);
(x.add(y));
}
main()