zoukankan      html  css  js  c++  java
  • 洛谷P1067 多项式输出题解 题解

    洛谷P1067 多项式输出题解


    P1067多项式输出 题目地址
    该题其实不是很难,思路简单,但是很让人难受,要讨论各种情况。
    我写代码的思路就是把所有情况分为四种:
    1、最高次项的处理;
    2、常数项的处理;
    3、一次项的处理;
    4、其他非特殊项的处理。
    为什么要这么分类呢?分类的依据是因为前三类关于项数系数的处理比较复杂,考虑到的情况比较多。
    另外还有在我个人认为此题关于最高次项系数能否为0的问题表述的不清楚。

    相关代码我已经用了批注,代码写的不好,水平有待提高,我会继续努力的。

    话不多说,请看代码:

    /*
     * 洛谷P1067多项式输出
     * 2020 03 13
     * write by Miubai
    */
    #include<stdio.h>
    
    #define A a[i]
    
    int main(void){
        int a[201];
        int i,n,b;
    
        scanf("%d",&n);
        b = n;
    
        for(i = 0;i<=n;i++){
            scanf("%d",&A);
        }
    
        for(i = 0;i<=n;i++){
            if(n == b){                                 //第一项判断
                if (1 == A)
                    printf("x^%d",b);
                else if (-1 == A)
                    printf("-x^%d",b);
                else if (A>0)
                    printf("%dx^%d",A,b);
                else if(A<0)
                    printf("%dx^%d",A,b);
            }else if(1 == b) {                          //一次项的判断
                if (1 == A)
                    printf("+x");
                else if (-1 == A)
                  printf("-x");
                else if(A>0)
                    printf("+%dx",A);
                else if (A<0)
                    printf("%dx",A);
            }else if (0 == b){                         //常数项的判断
                if (A>0)
                    printf("+%d",A);
                else if (A<0)
                    printf("%d",A);
            }else {                                    //其他非特殊项
                if(A > 0){                              //系数大于0
                    if(A == 1)
                        printf("+x^%d",b);
                    else
                        printf("+%dx^%d",A,b);
                }
    
                if(A<0){                            //系数小于0
                    if(-1 == A)
                        printf("-x^%d",b);
                    else
                        printf("%dx^%d",A,b);
                }
            }
    
            b--;
        }
        return 0;
    }
    

    谢谢!

  • 相关阅读:
    [ZJOI2014]力
    [八省联考2018]劈配
    [APIO2007]动物园
    [九省联考2018]IIIDX
    [HAOI2015]树上染色
    [SHOI2008]堵塞的交通
    暑假第五周
    暑假第四周
    暑假第三周
    暑假第二周
  • 原文地址:https://www.cnblogs.com/Miubai-blog/p/12495207.html
Copyright © 2011-2022 走看看