PAT 乙级 1010
题目
1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:
x
n
x^n
xn(n为整数)的一阶导数为
n
x
n
?
1
nx^{n-1}
nxn?1)
输入格式
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0 。
输入样例
3 4 -5 2 6 1 -2 0
结尾无空行
输出样例
12 3 -10 1 6 0
结尾无空行
我的代码
#include<iostream>
using namespace std;
int main(){
int n[2002];
int i=0;
while(cin>>n[i]>>n[i+1]){
i+=2;
}
for(int j=0;j<i;j+=2){
n[j]*=n[j+1];
if(n[j+1]!=0){
n[j+1]-=1;
}
}
cout<<n[0]<<' ';
cout<<n[1];
for(int j=2;j<i;j+=2){
if(n[j]!=0){
cout<<' '<<n[j];
cout<<' '<<n[j+1];
}
}
}
其中在输入数据的时候,采用了 while(cin>>n[i]>>n[i+1]) { } 的方法因为输入的数据事先并不知道有多少个,自己输入数据时通过 Ctrl+Z 再键入Enter 来结束循环;
cout<<n[0]<<' ';
cout<<n[1];
if(n[j]!=0){
cout<<' '<<n[j];
cout<<' '<<n[j+1];
当一个单项式的系数为零时应自动略去该项,故再输出时应进行判断(默认第一项不会为零);
|