先看题目:
1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:3 4 -5 2 6 1 -2 0
结尾无空行
输出样例:12 3 -10 1 6 0
结尾无空行
然后是我个人的答案:
#include#include int main() { int m,n; int x,y; while(scanf("%d",&m)&&scanf("%d",&n)) { if(m==0||n==0) { continue; } else if(m!=0&&n!=0) { x=m*n; y=n-1; printf("%d %d ",x,y); } else { printf("0 0"); } } return 0; }
很明显,这样的答案一看就知道是个三流的程序员写出来的垃圾,所以肯定是过不去的,不仅超时还不满足题中结尾不能有多余空格的要求,然后我又去寻觅大佬们的代码,然后有一位大佬的代码实在是让我叹服,下面看代码,还有原文链接1010. 一元多项式求导 (25)-PAT乙级真题 – 柳婼 の blog
#includeusing namespace std; int main() { int a, b, flag = 0; while (cin >> a >> b) { if (a !=0&&b != 0) { if (flag == 1) cout << " "; cout << a * b << " " << b - 1; flag = 1; } } if (flag == 0) cout << "0 0"; return 0; }
大佬用的是c++,但是不影响可读性。不得不说,大佬就是大佬,Flag用得恰到好处,代码简洁,同时还实现了所有要求。然后就感觉自己还有很长的一段路要走,但是不管怎样,还是一直再坚持,相信自己未来应该也会做得更好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)