怎么一直错误啊 多项式除多项式还有什么情况啊 不就被除数大于等于除数的幂或小于其幂或幂等于0吗
这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。
输入格式:
输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:
N e[1] c[1] ... e[N] c[N]
其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。
#include
#include
#include
using namespace std;
void print(int exp[1000],float coef[1000],int n)
{
int i = 0;
for(;i"0 0 0.0\n");
return;
}
else
{
if(abs(coef[i]) < 0.05)
{
n--;
int t = 0;
while(t <= n - i - 1)
{
coef[i+t] = coef[i+t+1];
t++;
}
}
}
}
if(abs(coef[0]) < 0.05)
{
printf("0 0 0.0\n");
return;
}
printf("%d ",n);
for(i = 0;i"%d %0.1f\n",exp[i],coef[i]);
return ;
}
else
{
printf("%d %0.1f ",exp[i],coef[i]);
}
}
}
int main()
{
int exp1[1000],exp2[1000],exp3[1000],exp21[1000];
float coef1[1000],coef2[1000],coef3[1000],coef21[1000];
int n1,n2,i=0;
int k,k1;
cin>>n1;
k = k1 = n1;
for(;i int exp;
float coef;
cin>>exp>>coef;
exp1[i] = exp;
coef1[i] = coef;
}
cin>>n2;
for(i=0;i int exp;
float coef;
cin>>exp>>coef;
exp2[i] = exp;
coef2[i] = coef;
}
i=0;
if(exp1[0] < exp2[0] && n1 != 0)
{
printf("0 0 0.0\n");
print(exp1,coef1,n1);
return 0;
}
else if(n1 == 0 || n2 == 0)
{
printf("0 0 0.0\n");
printf("0 0 0.0");
return 0;
}
while(exp1[0] >= exp2[0])
{
exp3[i] = exp1[0] - exp2[0];
coef3[i] = coef1[0] / coef2[0];
i++;
for(int j=0;j int p1,p2;
p1 = 0;
p2 = 0;
while(p2 < n2)
{
if(exp1[p1] == exp21[p2])
{
coef1[p1] = coef1[p1] - coef21[p2];
if(coef1[p1] == 0)
{
int temp1;
temp1 = p1;
n1--;
k = k1 = n1;
while(p1 <= n1 - 1)
{
exp1[p1] = exp1[p1+1];
coef1[p1] = coef1[p1+1];
p1++;
}
coef1[p1] = 0;
exp1[p1] = 0;
p1 = temp1;
p2++;
}
else
{
p1++;
p2++;
}
}
else if(exp21[p2] > exp1[p1])
{
k = k1;
while(k > p1)
{
exp1[k] = exp1[k-1];
coef1[k] = coef1[k-1];
k--;
}
exp1[p1] = exp21[p2];
coef1[p1] = (-1) * coef21[p2];
n1++;
k = k1 = n1;
p2++;
p1++;
}
else if(exp1[p1] > exp21[p2])
{
p1++;
}
else if(p1 == n1 && p2 < n2)
{
while(p2 < n2)
{
exp1[p1] = exp21[p2];
coef1[p1] = (-1) * coef21[p2];
p1++;
n1++;
k = k1 = n1;
p2++;
}
break;
}
}
}
print(exp3,coef3,i);
print(exp1,coef1,n1);
}