这道题是2009普及组的题,仍然是一个字符串+模拟。(蒻到先不刷算法)

这道题的题干给了很多的提示,也很全面,但是当我把种种情况都考虑到了后,在写代码的过程中仍然出现了很多的错误,wa了三四次。其实导致这些错误的缘由仍然是思路不够清晰,没有考虑清楚,以及代码能力差。多亏了测试数据,帮助我改错,,,

1.模拟题,将情况准确分类判断

2.考虑各个部分的共性,减去不必要的判断

3.自己造特殊数据去验证,举一反三

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#define MAXN 100005
using namespace std;
int n;
string s;
int a[MAXN];
bool judge1(int x){//次数||系数是否为0
if(x==) return true;
else return false;
}
bool judge2(int x){//是否为负
if(x<) return true;
else return false;
}
bool judge3(int x){//次数系数是否为一
if(x==||x==-) return true;
else return false;
}
int main(){
cin>>n;
for(int i=;i<=n+;i++){
cin>>a[i];
}
int k=n;
while(k>=){
if(judge1(a[n-k+])==false){//系数不为0
if(k==n){//第一个特判
if(judge2(a[n-k+])){//负的
if(judge3(a[n-k+])==true){//系数为1
cout<<"-"<<"x"<<"^"<<k;
}
else{
cout<<"-"<<abs(a[n-k+])<<"x"<<"^"<<k;
}
}
else {//正的
if(judge3(a[n-k+])){
cout<<"x"<<"^"<<k;
}
else{
cout<<a[n-k+]<<"x"<<"^"<<k;
}
}
}
else if(k==){//为最后一个数
if(judge2(a[n-k+])) cout<<"-"<<abs(a[n-k+]);
else cout<<"+"<<a[n-k+]; }
else if(k==){//次数为1时
if(judge2(a[n-k+])){//负的
if(judge3(a[n-k+])){
cout<<"-"<<"x";
}
else{
cout<<"-"<<abs(a[+n-k])<<"x";
}
}
else{//正的
if(judge3(a[n-k+])){
cout<<"+"<<"x";
}
else{
cout<<"+"<<a[n-k+]<<"x";
}
}
}
else{//为后面的数
if(judge2(a[n-k+])){//负的
if(judge3(a[n-k+])){
cout<<"-"<<"x"<<"^"<<k;
}
else{
cout<<"-"<<abs(a[+n-k])<<"x"<<"^"<<k;
}
}
else{//正的
if(judge3(a[n-k+])){
cout<<"+"<<"x"<<"^"<<k;
}
else{
cout<<"+"<<a[n-k+]<<"x"<<"^"<<k;
}
}
}
}
k--;
}
return ; }

P1067多项式输出的更多相关文章

  1. 洛谷——P1067 多项式输出

    P1067 多项式输出 题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该 ...

  2. 洛谷 P1067 多项式输出

    P1067 多项式输出 模拟,很坑的那种 var i,n:longint; a:array[1..105] of integer; begin readln(n); for i:=1 to n+1 d ...

  3. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  4. 【洛谷】P1067 多项式输出

    原题链接:P1067 多项式输出 题目分析:学长推荐的OJ网站 --洛谷,发现挺好用的还可以下载提交出错的数据. 废话就不多说了,这道题属于基础题.提交出错主要是因为一些小细节不到位,这里就不一一赘述 ...

  5. P1067 多项式输出(模拟水题)

    题目描述 一元nn次多项式可用如下的表达式表示: 其中,a_ix^iai​xi称为ii次项,a_iai​ 称为ii次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: ...

  6. P1067 多项式输出 (模拟)

    题目描述 一元nn次多项式可用如下的表达式表示: 其中,a_i x^i 称为i次项,ai​ 称为i次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 多项式中自变量 ...

  7. 洛谷P1067 多项式输出(模拟)

    题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 1. 多项式中 ...

  8. 洛谷P1067 多项式输出

    题目链接:https://www.luogu.org/problemnew/show/P1067 这是一个纯模拟的小怪但是需要注意一些小细节: 1.首项为正没有+号. 2.所有项系数如果是一的话就省略 ...

  9. P1067 多项式输出

    #include <iostream>#include<cstdio>#include<algorithm>using namespace std;int a[10 ...

随机推荐

  1. springboot项目作为其他项目子项目

    <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/P ...

  2. 《转》从系统和代码实现角度解析TensorFlow的内部实现原理 | 深度

    from https://www.leiphone.com/news/201702/n0uj58iHaNpW9RJG.html?viewType=weixin 摘要 2015年11月9日,Google ...

  3. 使用linq将2个Datatable合并

    DataTable dtStepX = new DataTable("dtStepX"); DataTable dtStepS = new DataTable("dtSt ...

  4. linq 分页

    urList = (from u in urList                      orderby u.toolingNo_C                      select u) ...

  5. php大文件上传支持断点上传

    文件夹数据库处理逻辑 publicclass DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); ...

  6. AttributeError: module 'datetime' has no attribute 'now'

    在用时间转化时,一直报AttributeError: module 'datetime' has no attribute 'now', 我用的 import datetime   datetime ...

  7. C# Cache缓存的应用

    缓存类Cache的使用 直接先上代码 public class CacheHelper { private static string fileName = @"D:\huage.txt&q ...

  8. wannafly 练习赛10 E 数列查找(莫队+分块分块分块......)

    链接:https://www.nowcoder.net/acm/contest/58/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...

  9. ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'ambari'

    配置Ambari远程maridb 报错: ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'ambari' ...

  10. oracle 11g安装教程终结版

    1.解压文件 2.双击 “setup.exe” 3.高级安装.下一步 4.企业版  下一步 5.下一步 6.只要不报错,警告没事.(路径如果报错的话,没事,直接继续) 注意:如果有需要6.2版本的错误 ...