题目

题目地址:PAT 乙级 1010

思路

首先一个问题就是审题不清,导致代码返工了很多次,最后还没写对;

其次对于这道题来说每次输入一组数据之后就可以输出结果,太过机械地想要套用题目给出的输出样例,把简单的代码复杂化了;

最后注意“零多项式”的指数和系数都是0,但是表示为“0 0”这个问题。

代码

#include <iostream>
using namespace std; int main() {
int x = , y = ;
bool flag = false;
while (cin >> x >> y) {
if (x * y) {
if (flag)
cout << ' ';
else
flag = true;
cout << x * y << ' ' << y - ;
}
}
if (!flag)
cout << "0 0"; return ;
}

这段代码思路的巧妙之处就在于使用了一个标记变量flag,有两点优势:1. 在代码构造过程中自然解决了题设中给出的输出格式的问题,将每一组输出之间的空格放在了”本次输出“之前,利用标记变量解决了第一组输出之前没有空格的问题;2. 无需其它的操作就可以解决零多项式输出的问题;

下面来简单分析一下这段代码的思路,设置标记变量初值为false,输入第一组数据,若两者的乘积非零,进入操作,否则等待下一次输入;

非零:对于第一组输入数据,因flag为false,则将flag置为true,输出第一组的结果;第二组输入,因flag为true,先输出一个空格,之后输出第二组的结果;第三组……

为零:当之前存在输出,当前数据是常数项的一组,不进入while中的if结构,又因为这是最后一组输入,因此跳出循环,又不满足输出”0 0“的条件,因此结束程序,输出完毕;

当输入本身就是零多项式,因为不满足while中的if条件,且这是唯一的输入,因此跳出循环,又因为flag仍然是初值false,所以满足输出”0 0“的条件,程序结束,输出完毕。

初版代码

#include <iostream>
#include <vector>
using namespace std; int main() {
vector<int> num;
while (true) {
int tmp = ;
cin >> tmp;
num.push_back(tmp);
if (getchar() == '\n')
break;
}
num.pop_back();
int tmp = num[num.size() - ];
if (tmp == )
cout << << ' ' << ;
else {
num.pop_back();
vector<int>::iterator it;
for (it = num.begin(); it != num.end();) {
if (*it == ) {
it = num.erase(it);
it = num.erase(it);
}
else
++it;
}
bool flag = true;
for (int i = ; i < num.size(); i++) {
if (flag) {
cout << num[i] * num[i + ];
flag = false;
}
else {
cout << num[i] - ;
flag = true;
}
if (i != num.size() - )
cout << ' ';
}
cout << endl;
}
return ;
}

这段代码在测试中并未通过,但因为是初版代码,所以贴在这里供以后参考。

PAT 乙级 1010的更多相关文章

  1. PAT乙级 1010. 一元多项式求导 (25)

    1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一 ...

  2. [C++]PAT乙级1010. 一元多项式求导 (25/25)

    /* 1010. 一元多项式求导 (25) 设计函数求一元多项式的导数.(注:x^n(n为整数)的一阶导数为n*x^n-1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1 ...

  3. PAT 乙级 1010 一元多项式求导 (25) C++版

    1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一 ...

  4. PAT乙级1010

    1010 一元多项式求导 (25 分)   设计函数求一元多项式的导数.(注:x​n​​(n为整数)的一阶导数为nx​n−1​​.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不 ...

  5. PAT 乙级 1010.一元多项式求导 C++/Java

    设计函数求一元多项式的导数.(注:x​n​​(n为整数)的一阶导数为nx​n−1​​.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔. ...

  6. PAT 乙级 -- 1010 -- 一元多项式求导

    题目简述 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出 ...

  7. C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...

  8. PAT乙级真题及训练题 1025. 反转链表 (25)

    PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...

  9. PAT甲级1010. Radix

    PAT甲级1010. Radix (25) 题意: 给定一对正整数,例如6和110,这个等式6 = 110可以是真的吗?答案是"是",如果6是十进制数,110是二进制数. 现在对于 ...

随机推荐

  1. UIWebView 使用

    UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.这篇文章我将使用这个控件,做一个简易的浏览器.如下图: 我们创建一个Window-bas ...

  2. 洛谷P2599||bzoj1413 [ZJOI2009]取石子游戏

    bzoj1413 洛谷P2599 根本不会啊... 看题解吧 #include<cstdio> #include<algorithm> #include<cstring& ...

  3. ERP实施顾问,请找准自己的定位

    最近给一些实施顾问做了培训.这些实施顾问都是我们渠道伙伴中具有较高提升潜质的顾问,期待做一次集中培训,他们能够在ERP项目实施上有所突破与提升,并能够为公司的ERP项目实施工作承担更多职责,分担更多压 ...

  4. Hive_Hive的管理_远程服务

    远程服务启动方式 - 端口号10000 - 启动方式: #hive --service hiveserver & 以JDBC或ODBC的程序登陆到hive中操作数据时,必须选用远程服务启动方式 ...

  5. 20180401 lambda表达式

    ##lambda表达式:替代简单函数用 (反而增加了代码阅读难度,不建议使用) def fg(a1,a2): return a1+a2 qq = lambda a1,a2 : a1+a2 a1 = 1 ...

  6. 解决Git在更新项目时报凭证错误(Authentication failed)

    报此错误,大概率原因是用户名和密码弄错了,我用的阿里云,在网上找了半天发现Git远程仓库用的用户名和密码不是阿里云登陆用的账户密码,必须另外设置: 链接:code.aliyun.com/profile ...

  7. Android实现按钮点击效果(第一次点击变色,第二次恢复)

    1.首先创建一个按钮 <Button android:id="@+id/click" android:layout_width="fill_parent" ...

  8. Does Little'law really applicable to apply performance model now?

    上次提到Little定律, 我也解释过它跟另外一个公式有一些内在的关系,但是其实我自己对LL在当前复杂架构系统中到底是怎么应用的也没有完整的想法,于是我在Linkedin上把这个问题抛了出来,没有想到 ...

  9. cat 参数

    -A 相当于-vET的整合参数 -E 将结尾的换行符$显示出来 -n 显示行号 -T 将tab键以^T显示出来 -v 列出一些看不出来的特殊字符

  10. Selenium私房菜系列7 -- 玩转Selenium Server

    本篇主要是想更进一步介绍Selenium Server的工作原理,这次我们从Selenium Server的交互模式开始. 在<第一个Selenium RC测试案例>中,我们以命令“jav ...