zoukankan      html  css  js  c++  java
  • NOIP200901多项式输出

    试题描述

        一元 n 次多项式可用如下的表达式表示:f(x) =anxn + an−1 xn−1 + ... + a1 x + a0 an ≠ 0 其中,aixi称为i 次项,ai 称为i 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:
        1. 多项式中自变量为x,从左到右按照次数递减顺序给出多项式。
        2. 多项式中只包含系数不为0 的项。
        3. 如果多项式n 次项系数为正,则多项式开头不出现“+”号,如果多项式n 次项系数为负,则多项式以“-”号开头。
        4. 对于不是最高次的项,以“+”号或者“-”号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于0次的项,其系数的绝对值为1,则无需输出1)。如果x 的指数大于1,则接下来紧跟的指数部分的形式为“x^b”,其中b 为x 的指数;如果x 的指数为1,则接下来紧跟的指数部分形式为“x”;如果x 的指数为0,则仅需输出系数即可。
        5. 多项式中,多项式的开头、结尾不含多余的空格。

    输入
    共有2行,第一行1个整数,n表示一元多项式的次数。第二行有n+1个整数,其中第i个整数表示第n-i+1次项的系数,每两个整数之间用空格隔开。
    输出
    共1行,按题目所述格式输出多项式。
    输入示例
    【输入样例 1】
    5
    100 -1 1 -3 0 10
    【输入样例2】
    3
    -50 0 0 1
    输出示例
    【输出样例 1】100x^5-x^4+x^3-3x^2+10
    【输出样例2】-50x^3+1
    其他说明
    【数据范围】1≤n≤100,多项式各次项系数的绝对值均不超过100。
     

    本题看起来容易,其实想要考虑全面也不是太容易。要逻辑清晰,一步步来。

     1 #include <iostream>
     2 
     3 using namespace std;
     4 int a[101];
     5 int main()
     6 {
     7     int n,i,c=1;
     8     cin>>n;
     9     int f=n;
    10     for(i=1;i<=n+1;i++) cin>>a[i];
    11     for(i=1;i<=n+1;i++)
    12     {
    13         if(c==1)
    14         {
    15             if(f==1)
    16             {
    17                 if(a[i]==1) {cout<<"x";f--;}
    18                 else if(a[i]==-1) {cout<<"-x";f--;}
    19                 else if(a[i]==0) f--;
    20                 else {cout<<a[i]<<"x";f--;}
    21             }
    22             else if(f==0) cout<<a[i];
    23             else
    24             {
    25                 if(a[i]==1) {cout<<"x^"<<f;f--;}
    26                 else if(a[i]==-1) {cout<<"-x^"<<f;f--;}
    27                 else if(a[i]==0) f--;
    28                 else {cout<<a[i]<<"x^"<<f;f--;}
    29             }
    30             c++;
    31         }
    32         else
    33         {
    34             if(a[i]>0) cout<<"+";
    35             else if(a[i]==0) {f--;continue;}
    36             if(f==1)
    37             {
    38                 if(a[i]==1) {cout<<"x";f--;}
    39                 else if(a[i]==-1) {cout<<"-x";f--;}
    40                 else if(a[i]==0) f--;
    41                 else {cout<<a[i]<<"x";f--;}
    42             }
    43             else if(f==0) {cout<<a[i];continue;}
    44             else
    45             {
    46                 if(a[i]==1) {cout<<"x^"<<f;f--;}
    47                 else if(a[i]==-1) {cout<<"-x^"<<f;f--;}
    48                 else if(a[i]==0) f--;
    49                 else {cout<<a[i]<<"x^"<<f;f--;}
    50             }
    51         }
    52         
    53     }
    54     return 0;
    55 }
    NOIP200901多项式输出
  • 相关阅读:
    ElasticSearch 2 (23)
    ElasticSearch 2 (22)
    微信小程序框架模板部署:mpvue2.x+typescript+webpack3.x
    mpvue添加对scss的支持
    mpvue 封装axios请求方法
    Vue中qs插件的使用
    在微信小程序中使用less/sass
    微信小程序封装request请求
    VSCode --tsc : 无法加载文件
    Vue项目中的RSA加解密
  • 原文地址:https://www.cnblogs.com/YXY-1211/p/5136831.html
Copyright © 2011-2022 走看看