【6.18校内test】T1多项式输出

日常题前废话:

首先so amazing 的一件事,因为在洛谷上立下了的flag,然后这次考试前两道题都是刚刚做过不久的题emmm(相当于白送200吗qwq,但是这阻挡不了我第三题不会的脚步qwq)

好了来看题:

因为luogu上有题就不放原题了,直接放链接吧:多项式输出【题目链接】


做到这道题是在洛谷普及练习场的第一个板块:

 

因此很显然,这就是一道模拟题;

这道模拟虽然看起来好做,但是有很多很多的小细节需要处理,所以想得到满分也并非那么容易,幸运就幸运在我之前刚刚做了这道题,所以好多小细节就都了解到了qwq

 然后感觉考试时的代码不如交luogu的简单呢,考试处理的乱七八糟的又。

感觉大模拟没有什么好讲的qwq,就直接贴代码吧:

#include<bits/stdc++.h>

using namespace std;

int n,c;

int main(){
    scanf("%d",&n);
    if(n==0){
        cin>>c;
        cout<<c;
        return 0;
    }
    for(int i=n;i>=0;i--){
        cin>>c;
        if(c==0) continue;
        if((i!=n)&&(c>0)) cout<<"+";
        if(c==1||c==-1){
            if(c==-1&&i!=0) cout<<"-"; 
            if(i==0) cout<<c;
        }
        else cout<<c;
        if(i==1) {
            cout<<"x";
            continue;
        }
        if(i==0) break;
        cout<<"x^";
        cout<<i;
    }
}
luogu CODE
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>

using namespace std;

int n,g,z,first;
int a;
bool c;

int main(){
    freopen("poly.in","r",stdin);
    freopen("poly.out","w",stdout);
    scanf("%d",&n);
    if(n==1){
        cin>>g>>z;
        if(g==0&&z==0) cout<<"0";
        if(g!=0){
            if(g==1||g==-1){
                if(g==1) cout<<"x";
                else cout<<"-x";
            } 
            else cout<<g<<"x";
        }
        if(z!=0) {
            if(z>0) cout<<"+"<<z;
            else cout<<z;
        }
        return 0;
    }
    for(int i=n;i>=0;i--){
        cin>>a;
        if(a){
            if(a>0){
                if(a==1&&i!=n&&i!=1&&i!=0){
                    if(c==1)
                    cout<<"+"<<"x^"<<i;
                    else cout<<"x^"<<i;
                }
                if(a!=1&&i!=n&&i!=1&&i!=0) {
                    if(c==1) cout<<"+"<<a<<"x^"<<i;
                    else cout<<a<<"x^"<<i;
                }
                if(i==n) {
                    if(a==1)cout<<"x^"<<n;
                    else cout<<a<<"x^"<<n;
                }
                if(i==1) {
                    if(c==1){
                        if(a==1)  cout<<"+"<<"x";
                        else  cout<<"+"<<a<<"x";
                    }
                    else{
                        if(a==1)  cout<<"x";
                        else cout<<a<<"x";
                    }
                }
                if(i==0){
                    if(c==1) cout<<"+"<<a;
                    else cout<<a;
                }
            }
            if(a<0){
                if(a==-1&&i!=n&&i!=1&&i!=0) cout<<"-x^"<<i;
                if(a!=-1&&i!=n&&i!=1&&i!=0) cout<<a<<"x^"<<i;
                if(i==n){
                        if(a==-1)cout<<"-x^"<<n;
                    else cout<<a<<"x^"<<n;
                } 
                if(i==1) {
                    if(a==-1) cout<<"-x";
                    else cout<<a<<"x";
                }
                if(i==0) cout<<a;
            }
        }
        if(a) c=1;
    }
    if(c==0) cout<<0;
    return 0;
} 
TEST CODE

end-

 

posted @ 2019-06-18 18:44  Sweetness  阅读(165)  评论(0编辑  收藏  举报