• 洛谷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;
    }
    

    谢谢!

  • 相关阅读:
    Java中怎么控制线程訪问资源的数量
    我的Hook学习笔记
    《编写可读代码的艺术》——简单总结
    Hdu 1016 Prime Ring Problem (素数环经典dfs)
    setsockopt()使用方法(參数具体说明)
    Html5培训之精髓
    [unity3d]unity平台的预处理
    音频编辑大师 3.3 注冊名 注冊码
    linux tar.gz zip 解压缩 压缩命令
    面向对象的三个基本特征
  • 原文地址:https://www.cnblogs.com/Miubai-blog/p/12495207.html
Copyright © 2020-2023  润新知