-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPolynomial.java
86 lines (75 loc) · 1.44 KB
/
Polynomial.java
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
public class Polynomial
{
DynamicArray coef;
public Polynomial()
{
}
public void setCoefficient(int deg,int coeff)
{
coef.set(deg, coeff);
}
public int getCoefficient(int deg)
{
return coef.get(deg);
}
public int degree()
{
int deg=0;
for(int i=0;i<coef.size();++i)
if(coef.get(i)!=0)
deg=coef.get(i);
return deg;
}
public void print()
{
for(int i=0;i<coef.size();++i)
{
if(coef.get(i)!=0)
System.out.print(coef.get(i)+"x"+i);
}
}
public Polynomial add(Polynomial p)
{
int m=degree(),i;
int n=p.degree();
Polynomial result=new Polynomial();
for(i=0;i<Math.min(m, n);++i)
result.setCoefficient(i,getCoefficient(i)+p.getCoefficient(i));
if(i<n)
for(;i<=n;++i)
result.setCoefficient(i, p.getCoefficient(i));
else
for(;i<=m;++i)
result.setCoefficient(i, getCoefficient(i));
return result;
}
public Polynomial subtract(Polynomial p)
{
int m=degree(),i;
int n=p.degree();
Polynomial result=new Polynomial();
for(i=0;i<Math.min(m, n);++i)
result.setCoefficient(i,getCoefficient(i)-p.getCoefficient(i));
if(i<n)
for(;i<=n;++i)
result.setCoefficient(i, -p.getCoefficient(i));
else
for(;i<=m;++i)
result.setCoefficient(i, getCoefficient(i));
return result;
}
// public Polynomial multiply(Polynomial p)
// {
//
// }
//
// public int evaluate(int x)
// {
//
// }
//
// public static Polynomial add(Polynomial p1,Polynomial p2)
// {
//
// }
}