题目:
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nx n−1 。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
思路:
乍一看挺简单的,但小坑很多。。。
1.不知道什么时候结束输入
2.输入时说了输入非零项,结果输出“零项”是0 0
3.前后不能有空格
测试点分析:
测试点2(第三个)是输入系数非0,指数为0情况。举个栗子:
输入
-2 0
通过输出
0 0
题目例子输入
3 4 -5 2 6 1 -2 0
对应输出
12 3 -10 1 6 0
这里要求-2和0这种情况不能输出
但测试点2只测一对这种数据时,要求输出0 0
代码:
#include<stdio.h>
int main()
{
int n,m,count=0,flag=0;
char c;
while(c!='\n')
{
flag=0;
scanf("%d %d",&n,&m);
c=getchar(); //结束判断回车
count++;
if(n!=0 && m==0) //这种情况在末尾不能输出,不能加空格
{
flag=1;
}
if(count!=1 && flag==0)
{
printf(" ");
}
if(n==0) //零多项式
{
printf("0 0");
}
else if(n!=0 && m!=0)//正常情况
{
printf("%d %d",n*m,m-1);
}
if(count==1 && n!=0 && m==0)//测试点2,感觉最坑的地方
{
printf("0 0");
}
}
return 0;
}
全部通过,开心