2020. 2. 2. 17:22ㆍ카테고리 없음
#include
#define MAX_DEGREE 80
class polynomial {
int degree; //차수
float coef[MAX_DEGREE]; //계수
public:
polynomial() {degree = 0;}
void read() {
printf("다항식의 최고 차수를 입력하시오: ");
scanf("%d", °ree);
printf("각 항의 계수를 입력하시오 (총%d개)",degree+1);
for(int i = 0; i <= degree; i++)
scanf("%f",coef+i);
}
void display(char* str= "poly = ") {
printf("\t%s",str);
for(int i = 0; i < degree; i++)
printf("%5.1f x^ %d + ", coef[i], degree-i);
printf("%4.1f\n", coef[degree]);
}
void add(polynomial a, polynomial b) {
if(a.degree > b.degree){
*this = a;
for(int i =0 ; i<= b.degree;i++)
coef[i+(degree-b.degree)] += b.coef[i];
}
else {
*this = b;
for(int i =0 ; i<= a.degree;i++)
coef[i+(degree-a.degree)] += a.coef[i];
}
}
bool isZero() {return degree == 0;}
void negate() {
for(int i = 0; i< degree; i++)
coef[i] = - coef[i];
}
};
void main() {
polynomial a,b,c;
a.read();
b.read();
c.add(a,b);
a.display("A = ");
b.display("B = ");
c.display("A+B = ");
}
직접 복사해서 실행해보는 것을 추천한다!