help

P1067 [NOIP2009 普及组] 多项式输出

lll35657 @ 2024-12-16 15:46:41

n=int(input())
a=list(map(int,input().split()))
last=a[-1]
a.remove(a[-1])
c=0
for i in a:
    while i != 0 :
        print(f"{i}x^{n}", end="")
        c += 1
        break
a.remove(a[0])
for i in a:
    n -= 1
    if i>0 :
        if i==1:
            print(f"+x^{n}", end="")
        else:
            print(f"+{i}x^{n}", end="")
    elif i<0:
        if abs(i)==1:
            print(f"-x^{n}", end="")
        else:
            print(f"{i}x^{n}", end="")
if last>0:
    print(f"+{last}")
elif last<0:
    print(last)

by markeoeitwupp @ 2024-12-16 16:24:55

又是你,但是这道题总感觉你写的不太对

我这里没编译出来

做法没大问题,代码感觉有点麻烦了


by markeoeitwupp @ 2024-12-16 16:31:08

可能有点原始

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    bool t=false;
    for(int i=n;i>=0;i--){
        int a;
        cin>>a;
        if(a==0)
        continue;
        t=true;
        if(abs(a)==1){
            if(a<0)
            cout<<'-';
            else if(i!=n)
            cout<<'+';
            if(i>0)
            cout<<'x';
            if(i>1)
            cout<<"^"<<i;
            if(i==0)
            cout<<1;
        }
        else{
            if(a<0)
            cout<<'-';
            else if(i!=n)
            cout<<'+';
            cout<<abs(a);
            if(i>0)
            cout<<'x';
            if(i>1)
            cout<<"^"<<i;
        }
    }
}

|