设计函数求一元多项式的导数。(注:x^n^(n为整数)的一阶导数为n*x^n-1^。)
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:12 3 -10 1 6 0
分析:本题难点在于对题目输出格式的处理和隐藏条件的挖掘,以下先对此进行分析:
1.输出格式处理
题目要求“数字间以空格分隔,但结尾不能有多余空格”,如果是在一个循环内统一处理格式,那么由于题目要求“输出导数多项式非零项的系数和指数”,处理难度会变得非常大且非常繁琐,于是不妨先输出一次,之后的每次输出数字前都要输出空格。再来分析“输出导数多项式非零项的系数和指数”这个条件,既然是非0项,那么原来多项式里的常数项就无需处理,也就是输出的时候只要某一项的指数为0,那么就不输出!这点很关键!
2.隐藏条件
通过仔细读题,思考,你会发现题目并未要求结束条件,说明你需要在每次输入完就输出,而不是等全部输入完了再输出!而且你需要连续输入直到文件末尾,C++的输入格式是while(cin>>a>>b),只有这样,才满足题目的要求!否则不可能通过!
本题需要注意的地方是:
“零多项式”的指数和系数都是0,但是表示为“0 0”这个条件的处理需要在第1次输入的时候判定,如果输出的系数和指数都为0,那么按照要求输出,并且及时退出程序!
代码:
作者:18Temp 原文:https://blog.csdn.net/qq_37729102/article/details/81607589