/** * Classe modelisant un polynome à coefficients entiers * Un polynome est caracterise par la suite de ses coefficients * Ils sont stockes dans un tableau d'entiers, coefficient de poids faible en premier * ex: 3x^2+5x+1 est represente par le tableau [1,5,3] * Le premier coefficient ne peut pas etre nul */ public class Polynome{ //la liste des coefficients de notre polynome int[] coefficients; //le degre du polynome; /** *le constructeur *@param t un tableau d'entiers *@throws IllegalArgumentException si le premier coefficient de t est nul */ public Polynome(int[] t){ coefficients=new int[t.length]; for(int i=0;i<t.length;i++){ coefficients[i]=t[i]; } } //renvoie le degre du polynome //le degré du polynome nul est -1 public int degre(){ return coefficients.length-1; } /** *evalue le polynome sur un entier donne *@param x l'entier *@return int p(x) */ public int evaluer(int x){ int p=x; int r=0; for(int i=this.degre();i>=0;i--){ r+=coefficients[i]*p; p*=x; } return r; } /** *additionne deux polynome, renvoie le resultat dans un nouveau polynome *@param p un polynome *@return un polynome */ public Polynome add(Polynome p){ int d=this.degre()+1; int[] c=new int[d]; for(int i=0;i<d;i++){ c[i]+=this.coefficients[i]+p.coefficients[i]; } return new Polynome(c); } public String toString(){ if(this.degre()==-1) return 0+""; String s=""+coefficients[0]; for(int i=1;i<=this.degre();i++){ s+=coefficients[i]+"x^"+i+"+"; } return s; } }