版权声明:本文为博主原创文章,转载请务必注明出处和作者,谢谢合作! https://blog.csdn.net/zhanshen112/article/details/84324297
题目
1010 一元多项式求导 (25 point(s))
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为
0 0
。输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
算法
注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。这句话要理解好,题目的意思是如果单独输入8 0这样的数字,要输出0 0 表示……理工科的表达总不是容易让人理解,出卷老师也是这样……
至于实现,每次读入两个数字就好。由于输入式是指数和系数。因此,每读两个会很方便。
代码
代码1、C++实现
#include <iostream>
using namespace std;
int main(){
long int a,b,flag=0;
do{
cin>>a>>b;
if(b!=0){
if(flag==1) cout<<" "; //保证第一个数字之后才在数字之前输出空格
cout<<a*b<<" "<<b-1;
flag=1;
}
}while(getchar()!='\n');
if(flag==0) cout<<"0 0";
return 0;
}
代码2、C实现
//PAT1010V1
#include <stdio.h>
int main(){
int a,b;
int flag=0;
while(scanf("%d %d",&a,&b)!=EOF){
if(b!=0){
if(flag==0) printf("%d",a*b);
else printf(" %d",a*b);
printf(" %d",b-1);
flag=1;
}
}
if(flag==0) printf("0 0");
return 0;
}