栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

PAT乙级1010 刷题记录

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号