Я создал свой собственный динамический массив специально для хранения полиномов. Здесь я могу хранить свои полиномы и печатать их после установки коэффициентов, но не могу выполнить функцию добавления. Я создал функцию. но он не дает никакого вывода.
Это мой динамический массив .....
public class DynamArray {
int []a=new int[2];
void check(int index) {
while (index+1>a.length) {
int b[]=new int[2*a.length];
for(int i=0;i<a.length;i++) {
b[i]=a[i];
}
a=b;
}
}
public void add(int degree,int coefficient) {
check(degree);
a[degree]=coefficient;
}
}
, а это мой класс полиномов.
package classes_objects;
public class polynomial {
DynamArray d1=new DynamArray();
void setCoefficient(int degree,int coefficient) {
d1.add(degree, coefficient);
}
void print() {
for(int i=d1.a.length-1;i>=0;i--) {
if(d1.a[i]!=0) {
if(i==0) {
System.out.print(d1.a[0]);
}
else {
System.out.print(d1.a[i]+"x^"+i+" + ");
}
}
}
}
void add(polynomial p1) {
int maxlength=Math.max(d1.a.length, p1.d1.a.length);
System.out.println(maxlength);
d1.check(maxlength);
for(int i=maxlength-1;i>=0;i--) {
for(int j=p1.d1.a.length-1;i>=0;j--) {
if(i==j){
d1.a[i]+=p1.d1.a[j];
}}
}
}
public static polynomial add(polynomial p1,polynomial p2) {
polynomial p=new polynomial();
int maxlength=Math.max(p2.d1.a.length, p1.d1.a.length);
p.d1.check(maxlength);
for(int i=maxlength-1;i>=0;i--) {
for(int j=p1.d1.a.length-1;i>=0;j--) {
if(i==j) {
p.d1.a[i]=p2.d1.a[i]+p1.d1.a[j];
}
}
}
return p;
}
}
иэто мой класс polynomialuse для выполнения действий.
public class polynomialUse {
public static void main(String[] args) {
// TODO Auto-generated method stub
polynomial p1 = new polynomial();
polynomial p2 = new polynomial();
p1.setCoefficient(0, 5);
p1.setCoefficient(2, 2);
p1.setCoefficient(5, 5);
p1.setCoefficient(9, 4);
p2.setCoefficient(0, 3);
p2.setCoefficient(3, 3);
p2.setCoefficient(10, 100);
p1.print();
System.out.println();
p2.print();
p1.add(p2);
p1.print();
polynomial p=polynomial.add(p1,p2);
p.print();
}
}
enter code here