1010 一元多项式求导 (25分)
设计函数求一元多项式的导数。(注:x n x^nxn (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
思路:
这题题目描述不是很清楚,要做出此题要注意:
如果一开始输入指数就是0的情况,这种情况就直接输出0 0并结束程序
其他正常输入的情况遇到 指数为0的 则不输出。
不然测试点2、4会过不了。
示例代码1:
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int> v;
int num,index;
while(1){
cin>>num>>index;//系数,指数
if(num==0&&index==0){//系数,指数 都为 0 情况
v.push_back(0);//插入两个0
v.push_back(0);
}else if(index!=0){//指数不为0情况
v.push_back(num*index);//插入系数
v.push_back(index-1);//插入指数
}
if(cin.get()=='\n')//回车键停止
break;
}
int flag=0;
for(auto x:v){
if(flag==1)cout<<" ";
cout<<x;
flag=1;
}
//注意:测试点2,输入只有一对,且输入指数就是0,也要直接输出0 0,结束程序。
if(v.size()==0)cout<<"0 0";
return 0;
}
示例代码2:
#include<iostream>
using namespace std;
int main(){
int coefficient,index;//系数,指数
int len=0;
for(int i=0;i<4000;i++){
cin>>coefficient>>index;
// cout<<coefficient<<" "<<index<<endl;
if(index==0){//刚开始输入指数就是0的情况,直接输出0 0并结束程序
if(i==0){
cout<<"0 0";
break;
}
}else{ //其他正常输入的情况遇到指数为0的就不做输出处理。
if(index!=0){
if(i!=0)
cout<<" ";
cout<<coefficient*index<<" "<<index-1;
}
}
if (cin.get()=='\n'){//按回车时退出循环
break;
}
}
return 0;
}
版权声明:本文为weixin_43143173原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。