P1067多项式输出
这道题是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多项式输出的更多相关文章
- 洛谷——P1067 多项式输出
P1067 多项式输出 题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该 ...
- 洛谷 P1067 多项式输出
P1067 多项式输出 模拟,很坑的那种 var i,n:longint; a:array[1..105] of integer; begin readln(n); for i:=1 to n+1 d ...
- 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...
- 【洛谷】P1067 多项式输出
原题链接:P1067 多项式输出 题目分析:学长推荐的OJ网站 --洛谷,发现挺好用的还可以下载提交出错的数据. 废话就不多说了,这道题属于基础题.提交出错主要是因为一些小细节不到位,这里就不一一赘述 ...
- P1067 多项式输出(模拟水题)
题目描述 一元nn次多项式可用如下的表达式表示: 其中,a_ix^iaixi称为ii次项,a_iai 称为ii次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: ...
- P1067 多项式输出 (模拟)
题目描述 一元nn次多项式可用如下的表达式表示: 其中,a_i x^i 称为i次项,ai 称为i次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 多项式中自变量 ...
- 洛谷P1067 多项式输出(模拟)
题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 1. 多项式中 ...
- 洛谷P1067 多项式输出
题目链接:https://www.luogu.org/problemnew/show/P1067 这是一个纯模拟的小怪但是需要注意一些小细节: 1.首项为正没有+号. 2.所有项系数如果是一的话就省略 ...
- P1067 多项式输出
#include <iostream>#include<cstdio>#include<algorithm>using namespace std;int a[10 ...
随机推荐
- C++ 遍历循环表达示 auto, auto&, auto&&
for(auto x : range) 创建拷贝,无法修改range中的元素 for(auto& x : range) 可以修改range中的元素,但一般用以下这种 for(auto& ...
- Spring IOC(一)
最近复习,准备整理下复习笔记 Spring IOC 部分: 控制反转(Inversion of Control) IOC是什么 简言之 IOC完成的事情原先由程序员主动通过new实例化对象事情,转交给 ...
- UC
public class Test{ public static void main(String args[]){ int i[]= new int[1]; System.out.println(i ...
- CSS水印“点击穿透”
- 编译依赖ndt_gpu库的包,遇到Eigen报错
背景: 使用NDT建图,帧率比较慢,打算使用gpu加速计算. ndt_gpu是一个使用gpu加速ndt计算的库,首先在工作空间编译这个包. 然后在ndtMap包中链接这个库,其CMakelists.t ...
- 【转】Python Schema一种优雅的数据验证方式
转自 https://segmentfault.com/a/1190000011777230 Schema是什么? 不管我们做什么应用,只要和用户输入打交道,就有一个原则--永远不要相信用户的输入数据 ...
- Oracle删除表空间报ORA01548
由于undo表空间设置了自动增长,导致替换了好几个undo表空间,就想把原先的undo表空间删掉腾出空间 但删的时候报错 SQL> drop tablespace undotbs1 includ ...
- SoapUI Pro官网原包百度云盘分享
SoapUI Pro下载是件很痛苦的事,经常断网,或者是下载时间过长,这里分享的是截止2019.01.01 最新的安装原包. 百度云盘资源:https://pan.baidu.com/s/1SXTFs ...
- 关于如何解决TeamViewer限制时间问题
最近在弄一个项目,我们是乙方,甲方离我们比较远,所以需要用到远程操作软件.也就是TeamViewer. 这个软件一开始运行还行,后来时间用久了,很容易被限制时间.在网上查了大部分资料,都是一些修改MA ...
- Using FileUpload
Using FileUpload FileUpload can be used in a number of different ways, depending upon the requiremen ...