PAT乙级1010 刷题记录

PAT乙级1010 刷题记录,第1张

PAT乙级1010 刷题记录

先看题目:

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

#include 
using 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用得恰到好处,代码简洁,同时还实现了所有要求。然后就感觉自己还有很长的一段路要走,但是不管怎样,还是一直再坚持,相信自己未来应该也会做得更好。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5691890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存