输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
//本题只需要掌握导数的一些基本知识( (x^y)' = y * x ^ (y-1) ),再注意一些细节即可AC了
//下面是本蒻蒻的代码:
#include<stdio.h>
int main(){
int x, y, flag; //flag是用来判断是否是第一项,即是否需要输出前导空格(因为题目要求最后一个数字后面没有空格)
flag = 0;
while(~scanf("%d%d", &x, &y)){ //注意特判输出的结束,因为scanf未读入数据是返回-1,而~(-1) == 0,所以只要是正常读入该式子就不为0,即循环继续
if(y == 0) //指数y等于0说明已经到了常数项,循环即可停止了
break;
printf("%s%d %d", flag ? " " : "" , x * y, y - 1); //因为读入的是非零项,所以系数x不为0,根据幂函数求导法则知求导后系数为原系数 * 指数,指数-1
flag++; //每输出一次flag + 1
}
if(!flag) //!flag等价于flag == 0,若此式成立,则前面一次都没输出,即输入的是“零多项式”,根据题目要求指数和系数都为0
printf("0 0");
return 0;
}
来源:CSDN
作者:呆码农梦中识bug,程序员哭求加工资
链接:https://blog.csdn.net/qq_45472866/article/details/104206379