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 ...
随机推荐
- void 运算符和 逗号运算符
一.void 运算符 void 运算符的作用目的是 执行一个表达式,但是不用返回任何值,或者是返回undefined void 本身就有 无效.空的 的意思. void运算符的用法: 1.不加括号的写 ...
- print和赋值
赋值 #可同时(并行)给多个变量赋值 x, y, z = 1, 2, 3 #交换多个变量的值 x, y = y, x 序列解包(或可迭代对象解包):将一个序列(或任何可迭代对象)解包,并将得到的值存储 ...
- Linux 环境下 jar 加解密命令?
1.源码打jar包 jar -cvf demo-source.jar -C src/ . > log.txt 2.编译字节打jar包 jar -cvf demo-class.jar -C bin ...
- html address标签 语法
html address标签 语法 作用:定义文档作者/所有者的联系信息. 说明:如果 <address> 元素位于 <body> 元素内部,则它表示该文档作者/所有者的联系信 ...
- Java+超大文件上传
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- android stadio gradle问题
https://www.jianshu.com/p/2bb0b6a7b479 https://www.jianshu.com/p/d175bef9770c Unable to resolve depe ...
- k8s安装报错 Error: unknown flag: --experimental-upload-certs
今天安装k8sV1.16的版本时候,执行突然发现命令不对,之前安装V1.15的时候是可以的,可能是版本升级的原因. 解决: unknown flag: --experimental-upload-ce ...
- Mac item2常用快捷键
记录一下iterm 2 快捷键,用于备忘! 标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:co ...
- springboot(四).配置FastJson自定义消息转化器
配置FastJson自定义消息转化器 一.fastJson简介 fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件.它是目前json解析最快 ...
- Spring Cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
上一篇我根据框架中OAuth2.0的使用总结,画了一个根据用户名+密码实现OAuth2.0的登录认证的流程图,今天我们看一下logout的流程: /** * 用户注销 * @param accessT ...