UPC-多项式的输出_多项式输出 【题目描述】 一元 n 次多项式可用如下的表达式表示: f(x)=anxn+an-程序员宅基地

技术标签: upc大中小  

题目描述:
一元 n 次多项式可用如下的表达式表示:
其中,aixi称为 i 次项,ai 称为 i 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:
f(x)=anxn+an-1xn-1+…+a1x+a0,an≠0

  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 次项的系数,每两个整数之间用空格隔开。(0<=n<=100,-100<=系数<=100)
    输出
    输出共 1 行,按题目所述格式输出多项式。
    样例输入
    100 -1 1 -3 0 10
    样例输出
    100x5-x4+x3-3x2+10
#include "bits/stdc++.h"

using namespace std;

int main()
{
    
    int n;
    int flag=0;
    cin>>n;
    int a[110];
    for(int i=n;i>=0;i--)
    {
    
        cin>>a[i];
    }
    for(int i=n;i>=0;i--)
    {
    
        if(i==n&&a[i]!=0&&n!=1){
    //特殊处理第一项

           if(a[i]>0&&a[i]!=1){
    
               cout<<a[i]<<"x^"<<n;
           flag=1;}
           else if(a[i]==1){
    
               cout<<"x^"<<n;
               flag=1;}
           else if(a[i]==-1){
    
               cout<<"-x^"<<n;
               flag=1;}
           else if(a[i]<0&&a[i]!=-1){
    
                cout<<a[i]<<"x^"<<n;
                flag=1;}
        }


        else if(i!=0&&i!=n&&i!=1){
    //中间项数
            if(a[i]==1&&flag==1){
    
                cout<<"+x^"<<i;
            flag=1;}
            else if(a[i]==-1&&flag==1){
    
                cout<<"-x^"<<i;
                flag=1;}
            else if(a[i]>0&&a[i]!=1&&flag==1){
    
                cout<<"+"<<a[i]<<"x^"<<i;
                flag=1;}
            else if(a[i]<0&&a[i]!=-1&&flag==1){
    
                cout<<a[i]<<"x^"<<i;
                flag=1;}


            else if(a[i]==1&&flag==0){
    
                cout<<"x^"<<i;
                flag=1;}
            else if(a[i]==-1&&flag==0){
    
                cout<<"-x^"<<i;
                flag=1;}
            else if(a[i]>0&&a[i]!=1&&flag==0){
    
                cout<<a[i]<<"x^"<<i;
                flag=1;}
            else if(a[i]<0&&a[i]!=-1&&flag==0){
    
                cout<<a[i]<<"x^"<<i;
                flag=1;}



      }


        else if(i==1){
    //特殊处理倒数第二项
            if(a[i]==1&&flag==1){
    
                cout<<"+x";
            flag=1;}
            else if(a[i]==-1&&flag==1){
    
                cout<<"-x";
                flag=1;}
            else if(a[i]>0&&a[i]!=1&&flag==1){
    
                cout<<"+"<<a[i]<<"x";
                flag=1;}
            else if(a[i]<0&&a[i]!=-1&&flag==1){
    
                cout<<a[i]<<"x";
                flag=1;}
            else if(a[i]==1&&flag==0){
    
                cout<<"x";
                flag=1;}
            else if(a[i]==-1&&flag==0){
    
                cout<<"-x";
                flag=1;}
            else if(a[i]>0&&a[i]!=1&&flag==0){
    
                cout<<a[i]<<"x";
                flag=1;}
            else if(a[i]<0&&a[i]!=-1&&flag==0){
    
                cout<<a[i]<<"x";
                flag=1;}
        }



        else if(i==0)//特殊处理最后一项
        {
    
            if(a[i]>0&&flag==1){
    
                cout<<"+"<<a[i];
            flag=1;}
            else if(a[i]<0&&flag==1){
    
                cout<<a[i];
            flag=1;}

            else if(a[i]>0&&flag==0){
    
                cout<<a[i];
                flag=1;}
            else if(a[i]<0&&flag==0){
    
                cout<<a[i];
                flag=1;}

        }

    }

    return 0;
}

/***/特别注意两个测试点:***
2
0 0 1
1
100 0
这两个测试点在洛谷P1067上没有,但是在upc上有,

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45749101/article/details/104076814

智能推荐

全透视:CSS Z-index 属性-程序员宅基地

文章浏览阅读85次。感觉后面的Demo很不错,特此收藏。。。 翻译来源:堂主的博客 非常好的一篇技术文档,翻译自Louis Lazaris 2009年9月15日发表的《The Z-Index CSS Property: A Comprehensive Look 》 ,相信会帮助很多像我一样的前端..._让透视图显示完全怎么写css

《Python与硬件项目案例》— 全网首发基于Python与指纹模块AS608的指纹识别签到考勤系统(上篇)(期末大作业、课程设计、毕业设计、结课项目)_python 指纹系统 用什么 框架-程序员宅基地

文章浏览阅读4.1k次,点赞2次,收藏15次。2贰进制用Python语言开发设计的指纹识别签到考勤系统相关的内容的上篇,主要是AS608指纹模块的初步使用和基本指纹录入与识别功能的测试,下篇将在此基础上实现签到考勤的功能。_python 指纹系统 用什么 框架

Qt creator 编译错误:无法解析的外部符号(命令)_qtcreator无法解析的外部符号-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏5次。问题来自于:只是在creator 中添加了一个新的DIalog类,并在main(),中实例化并show,就出现如下的错误:main.obj:-1: error: LNK2019: 无法解析的外部符号 "public: __cdecl Dialog::Dialog(class QWidget *)" (??0Dialog@@QEAA@PEAVQWidget@@@Z),该符号在函数 main _qtcreator无法解析的外部符号

rootfs & bootfs & bootloader_bootfs中的bootloader-程序员宅基地

文章浏览阅读5.7k次,点赞8次,收藏24次。文件系统 &amp;amp; bootloader一、文件系统​ 一个linux系统按启动顺序可以划分为:引导加载程序、内核、文件系统、应用程序。​ 文件系统可以通俗的理解为管理文件存放位置的管家,不同的操作系统有不同的文件系统。Linux中一般使用EXT2格式的文件系统,(EXT3/EXT4增加了日志功能)是一种索引式(inode)文件系统,不需要像U盘那样经常磁盘重组。resize2fs命令可..._bootfs中的bootloader

setup.py install running install error: can't create or remove files in install directory-程序员宅基地

文章浏览阅读3.8k次。在执行python setup.py install 命令时出现以下错误提示:/usr/lib/python2.7/dist-packages/setuptools/dist.py:285: UserWarning: Normalizing 'v0.1' to '0.1' normalized_version,running installerror: can't create or remov..._running install error: can't create or remove files in install directory the

em/px/rem/vh/vw 的区别?_vw方式区别-程序员宅基地

文章浏览阅读300次。px表示像素,所谓像素就是呈现在显示器上的一个个小点,每个像素点都是大小等同的,所以像素为绝对长度单位。在移动端中存在设备像素比,px实际显示的大小是不确定,之所以认为px为绝对单位,在于px的大小和元素的其他属性无关em是相对长度单位。相对于当前对象内文本的字体大小。如果当前对象内没有设置,则相对于浏览器的默认字体尺寸(1em = 16px)为了简化 font-size 的换算,可以在css中的 body 选择器中声明font-size= 62.5%,这就使 em 值变为 16px*62.5% = 10p_vw方式区别

随便推点

信息隐藏——LSB隐写分析_lsb隐写检测-程序员宅基地

文章浏览阅读8.1k次,点赞8次,收藏46次。LSB隐写分析【实验目的】:了解并实现常见的LSB隐写分析法。【实验内容】:■实现针对LSB隐写的卡方隐写分析算法,并分析其性能。■实现针对LSB隐写的RS隐写分析算法,并分析其性能。1.卡方隐写分析算法主要针对图像所有像素点的LSB全嵌入情况;利用数理统计假设检验中的卡方检验模型来分析。设图像中灰度值为j的象素数为hj,其中0≤j≤255。如果载体图像未经隐写,h2i和h2i+1的值会相差很大。秘密信息在嵌入之前往往经过加密,可以看作是0、1 随机分布的比特流,而且值为0与1的可能性都是1_lsb隐写检测

EasyDarwin开源流媒体服务器Golang版本:服务端录像功能发布_golang录像-程序员宅基地

文章浏览阅读5.4k次。EasyDarwin开源流媒体服务器(www.easydarwin.org)现在使用Go版本实现了。最新的代码提交,已经支持了推流(或者拉流)的同时进行本地存储。本地存储的原理,是在推流的同时启动ffmpeg作为一路Client来做存储。ffmpeg在demux和mux的工作方面已经十分成熟,我们没必要再重复发明轮子。因此这种做法十分取巧而且简单有效,也不会侵入原来的代码架构。如下图所示:R..._golang录像

金蝶中间层服务器组件注册使用信任方式,提示:用户名或密码错误_用户名或密码有误,中间层组件无法正常注册-程序员宅基地

文章浏览阅读7.4k次。金蝶中间层服务器组件注册使用信任方式,提示:用户名或密码错误 【操作步骤】方法一:1、确认当前输入的用户名及密码是否正确;2、在服务器上依次打开【控制面板】→【管理工具】-【本地安全策略】-【本地策略】-【安全选项】-网络访问:本地账户的共享及安全模式由“仅来宾”更改为“经典”3、待注册完成后再将上一步的策略修改回“仅来宾”;方法二(变通处理):1、中间层组件注册时,先选..._用户名或密码有误,中间层组件无法正常注册

Unity Awake OnEnable Start 和Update 先后顺序探究_awake 和 start 间隔帧吗-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏6次。——记录下看到的有用的东西,免得又搞忘了原文Unity中,我们知道Awake,OnEnable,Start和Update是按照先后顺序运行的。但是,问题是,多个脚本在一个物体身上的时候,一个脚本的Awake一定会比另一个脚本的Start要早吗?一个脚本的Awake一定会比另一个脚本的OnEnable要早吗?当你的物体或者脚本是通过代码Instantiate或者AddComponen..._awake 和 start 间隔帧吗

Nprogress进度条在vue中的简单使用_nprogress-busy vue-程序员宅基地

文章浏览阅读145次。1. 安装插件npm install --save nprogress2. 引入插件(router.js)import Nprogress from 'nprogress';import 'nprogress/nprogress.css';3. 使用插件(router.js)router.beforeEach((to, from, next) => { NProgress.start(); next();})router.afterEach(() => { NPr_nprogress-busy vue

Windows服务详解-程序员宅基地

文章浏览阅读960次。windows2003下有一进程cisvc.exe,随系统启动,有时候会达到CPU占用70%的情况,且频繁访问硬盘,固定关闭之。从网上找了好多资料,都说是windows自带的进程,不用关闭,但是都没有说是哪个服务调用的,终于找到一个篇文章,讲windows的服务的,转载之,备忘。释放内存:在 “开始” 的 “运行” 中 输入:ser..._remote desktop help session manager

推荐文章

热门文章

相关标签