多项式除法的模拟计算。题目不难,可是载在了最后一个循环的边界条件上,对于如下数据:
0 0
0
开始没有判断最后一项输出时j的值,当用上面数据时j为-1,coe[j]显然就错了,可是在eclipse下自己测试时它的输出结果居然是0,也没有报错,我用的是(g++),唉,它的容错性也太好了吧!
Source:
#include<iostream>
using namespace std;
int coe[10010], n, k, i, j;
int main() {
while (cin>>n>>k) {
if (n==-1&& k==-1)
break;
for (i=0; i<=n; ++i)
cin>>coe[i];
for (i=n; i>=k; --i) {
if (coe[i]!=0) {
coe[i-k]-=coe[i];
coe[i]=0;
}
}
for (j=n; j>=0&& coe[j]==0; --j)
;
// cout<<j<<endl;
for (i=0; i<j; ++i)
cout<<coe[i]<<' ';
if (j>=0)
cout<<coe[j]<<endl;
else
cout<<0<<endl;
}
return 0;
}
using namespace std;
int coe[10010], n, k, i, j;
int main() {
while (cin>>n>>k) {
if (n==-1&& k==-1)
break;
for (i=0; i<=n; ++i)
cin>>coe[i];
for (i=n; i>=k; --i) {
if (coe[i]!=0) {
coe[i-k]-=coe[i];
coe[i]=0;
}
}
for (j=n; j>=0&& coe[j]==0; --j)
;
// cout<<j<<endl;
for (i=0; i<j; ++i)
cout<<coe[i]<<' ';
if (j>=0)
cout<<coe[j]<<endl;
else
cout<<0<<endl;
}
return 0;
}