您的位置:首页 > 其它

PAT basic 1010 : 一元多项式求导

2014-02-26 19:52 204 查看
设计函数求一元多项式的导数。

输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:
3 4 -5 2 6 1 -2 0

输出样例:
12 3 -10 1 6 0

简析:

每一对数先输出其积,再输出后一个数减一,如果指数为0,则不输出。如果只输入了2个数,且指数为0,则输出 0 0

代码如下:

/***********************************************
CSDN博客地址:http://blog.csdn.net/xiaqunfeng123
转载请注明出处,谢谢!
——Summer_ZJU
************************************************/
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int a,b;
bool flag=false;
while (cin>>a>>b)
{
if(a>1000 && a<-1000 && b>1000 && b<-1000)//保证输入数据的范围
exit(0);
if (a*b)//不管是系数还是指数,只要有一个为0,就没有输出
{
if(flag)
cout<<" ";
else
flag=true;
cout<<a*b<<" "<<b-1;
}
if(!flag) //如果指数为0,那就输出0 0 值
cout<<"0 0";
}
system("pause");
return 0;
}

还有一种写法,用迭代器写的,思路和上面的一样。
代码如下:

/***********************************************
CSDN博客地址:http://blog.csdn.net/xiaqunfeng123
转载请注明出处,谢谢!
——Summer_ZJU
************************************************/
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
int n;
vector<int> vec;
vector<int>::iterator it1,it2;
bool flag=false;
while(cin>>n)
{
vec.push_back(n);
if(n==0)
break;
}
for (it1=vec.begin(),it2=it1+1;it2!=vec.end();it1+=2,it2+=2)
{
if(*it2==0)
break;
if(flag)
cout<<" ";
else
flag=true;
cout<<(*it1)*(*it2)<<" "<<*it2-1;
}

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: