2019-05-14 P1067

题目链接:https://www.luogu.org/problemnew/solution/P1067

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int maxn =110;
int A[maxn],n,m;
int main(void)
{
    cin>>n;
    for(int i=1;i<=n+1;i++)
    {
        cin>>A[i];
    }
    int flag=true;//标记第一个是否输出
    for(int i=1;i<=n+1;i++)
    {
        int m=n-i+1; //x的幂次方 
        if(A[i]!=0) //此时需要输出内容 
        {
            //首先是输出正负号!!!
            if(flag==true)//第一次输出,正号不用输出 
            {
                flag=false; 
                if(A[i]<0) printf("-");
            } 
            else//不是第一次输出,如果是正数,输出正号,否则,输出负号 
            {
                if(A[i]>0) printf("+");
                else printf("-"); 
            }
            
            //输出系数,如果系数为1或者-1,特殊处理
            if(A[i]!=1 && A[i]!=-1)
            {
                if(A[i]>0) printf("%d",A[i]);
                else printf("%d",-A[i]);
            } 
            
            //输出x的幂次方
            if(m!=0)
            {
                if(m!=1)
                    printf("x^%d",m);
                else 
                    printf("x");    
            } 
            else //m=0 
            {
                if(A[i]==-1 || A[i]==1)
                    printf("1");
            }
             
        } 
    } 
    return 0;   
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容