#include <iostream>
using namespace std;
void showPoly(double p[], int deg) {
int i;
i=deg;
if(i>0) {
cout<<p[i]<<"x^"<<i;
}
i=i-1;
while(i>=0) {
if(p[i]>0) cout<<"+"<<p[i]<<"x^"<<i;
else if(p[i]<0) cout<<p[i]<<"x^"<<i;
i=i-1;
}
cout<<endl;
}
void addPoly(double p1[], int p1deg, double p2[], int p2deg, double p3[], int *p3deg) {
int i, n;
n=p1deg;
if(p2deg>n) n=p2deg;
*p3deg=n;
for(i=0;i<n+1;++i) p3[i]=p1[i]+p2[i];
}
void multPoly(double p1[], int p1deg, double p2[], int p2deg, double p3[], int *p3deg) {
int i, j;
*p3deg=p1deg+p2deg;
for(i=0;i<*p3deg+1;++i) p3[i]=0;
for(i=0;i<p1deg+1;++i) {
for(j=0;j<p2deg+1;++j) {
p3[i+j]=p3[i+j]+p1[i]*p2[j];
}
}
}
int main() {
int i, j, n, deg;
double coef;
int poly1deg=0, poly2deg=0, poly3deg=0;
double poly1[100];
double poly2[100];
double poly3[100];
cout<<"다항식 A의 항의 수 : ";
cin>>n;
for(i=0;i<n;++i) {
cout<<i+1<<"번째 항의 계수와 지수: ";
cin>>coef>>deg;
poly1[deg]=coef;
if(deg>poly1deg) poly1deg=deg;
}
cout<<"다항식 B의 항의 수 : ";
cin>>n;
for(i=0;i<n;++i) {
cout<<i+1<<"번째 항의 계수와 지수: ";
cin>>coef>>deg;
poly2[deg]=coef;
if(deg>poly2deg) poly2deg=deg;
}
cout<<"입력된 다항식 A : ";
showPoly(poly1, poly1deg);
cout<<"입력된 다항식 B : ";
showPoly(poly2, poly2deg);
multPoly(poly1, poly1deg, poly2, poly2deg, poly3, &poly3deg);
cout<<"다항식 A * 다항식 B : ";
showPoly(poly3, poly3deg);
return 0;
}
'c·c++ > c++ 프로그래밍' 카테고리의 다른 글
complex number class (복수수 클래스) (0) | 2012.12.08 |
---|---|
스택 클래스 (0) | 2012.11.05 |
조건을 가진 확률분포 (0) | 2012.09.16 |
cin.getline 입력 (0) | 2012.09.16 |
동적할당을 이용한 무한자리수 덧셈 (0) | 2012.09.14 |