• 洛谷P1067 多项式输出


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

    这是一个纯模拟的小怪但是需要注意一些小细节:

    1.首项为正没有+号。

    2.所有项系数如果是一的话就省略不写。

    3.末项没有X^0而是1。

    4.倒数第二项直接是X而不是X^1。

    AC代码如下:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int A[200];
    bool sign;
    int main()
    {
        int n;
        scanf("%d",&n);
        int t=n+1;
        for(int i=1;i<=t;i++)
        {
            scanf("%d",&A[i]);
        }
        /*for(int i=1;i<=t;i++)
        {
            printf("%d ",A[i]);
        }*/ 
        if(A[1]==1)
        {
            printf("x^%d",n),n--;
        }
        else if(A[1]==-1)
        {
            printf("-x^%d",n),n--;
         } 
        else if(A[1]==0) n--; 
        else 
        {
            printf("%dx^%d",A[1],n);
            n--;
        }
        for(int i=2;i<=t-1;i++)
        {
            if(i==t-1)
            {
                if(A[t-1]==1)
                {
                    printf("+x"),n--;
                    sign=1;
                }
                else if(A[t-1]==-1)
                {
                    printf("-x"),n--;
                    sign=1;
                } 
                else if(A[t-1]==0) 
                {
                    n--; 
                    sign=1;
                }
                else 
                {
                    if(A[t-1]>0)printf("+%dx",A[t-1]);
                    else printf("%dx",A[t-1]);
                    n--;
                    sign=1;
                }
            }
            if(A[i]>0&&sign==0)
            {
                if(A[i]==1)
                {
                    printf("+x^%d",n),n--;
                }
                else
                {
                    printf("+%dx^%d",A[i],n);
                    n--;
                }
            }
            if(A[i]<0&&sign==0)
            {
                if(A[i]==-1)
                {
                    printf("-x^%d",n),n--;
                 } 
                else 
                {
                    printf("%dx^%d",A[i],n);
                    n--;
                }
            }
            if(A[i]==0&&sign==0)
            {
                n--;
            }
            if(n==0)
            {
                if(A[t]>0)
                {
                    printf("+%d",A[t]);
                }
                if(A[t]<0)
                {
                    printf("%d",A[t]);
                }
                if(A[t]==1)
                break;
            }
        }
        
        return 0;
    }

      

  • 相关阅读:
    我的黑客偶像
    2020-2021-1学期 学号20201222 《信息安全专业导论》第5周学习总结
    XOR加密
    pep/9
    我的黑客偶像
    学年2020-2021,1 学号:20201222《信息安全专业导论》第4周学习总结”
    IEEE754浮点数转换
    师生关系
    罗马数字转阿拉伯数字
    第三周总结
  • 原文地址:https://www.cnblogs.com/LITTLESUNwl/p/10511123.html
Copyright © 2020-2023  润新知