#题目说明#
设计函数求一元多项式的导数。
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
#难点
- 输入数据的结束标志
在本题中没有说明结束的条件,所以需要getchar()判断回车来作为结束输入数据的条件,部分代码如下:
//输入数据的结束标志
if(getchar()=='\n')
break;
else
continue;
另外在输入多项式时需要判断幂数是否为0,如果为0,则其倒数为0,在输出导数的数据时不作输出即可。
- 输出数据的格式
因为输出的数据最后没有空格,不然作答时判为格式错误。
解决方法:
cout<<m[0]<<" "<<n[0];
for(int j=1;j<i;j++){
cout<<" "<<m[j]<<" "<<n[j];
}
最后的完整代码:
#include<iostream>
using namespace std;
int main(){
int a,b;
int m[1001]={0},n[1001]={0};
int i=0;
//输入数据
while(1){
cin>>a>>b;
if(b==0)
break;
m[i]=a*b;
n[i]=b-1;
i++;
//输入数据的结束标志
if(getchar()=='\n')
break;
else
continue;
}
//输出
cout<<m[0]<<" "<<n[0];
for(int j=1;j<i;j++){
cout<<" "<<m[j]<<" "<<n[j];
}
return 0;
}