OpenJudge - 39:多项式输出

news/2024/11/29 19:11:18/

目录

一、题目描述

二、代码实现



一、题目描述

一元 n 次多项式可用如下的表达式表示:

f(x) = a_nx^n + a_{n-1}x^{n-1} + ... + a_1x^1 + a_0, a_n \ne 0

其中,​ a_ix^i 称为 i 次项,​ a_i 称为 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 ≤ n ≤ 100,多项式各次项系数的绝对值均不超过 100。

输出:

共 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

二、代码实现

#include <stdio.h>
#include <math.h>int main()
{int n = 0;scanf("%d", &n);int flag = 1;  // 标识是否输出了多项式的第一项,即最左边的那一项for (int i = 1; i <= n + 1; ++i){int exp = n - i + 1;  // 指数: [n, 0]int coef = 0;  // 系数// 多项式中只包含系数不为 0 的项scanf("%d", &coef);if (coef == 0)continue;// 输出正负号if (flag){if (coef < 0)printf("%c", '-');flag = 0;}else{if (coef < 0)printf("%c", '-');elseprintf("%c", '+');}// 输出系数的绝对值if (exp > 0 && abs(coef) != 1)printf("%d", abs(coef));else if (exp == 0)printf("%d", abs(coef));// 输出自变量 xif (exp > 0)printf("%c", 'x');// 输出 ^expif (exp > 1)printf("%c%d", '^', exp);}printf("\n");return 0;
}
  1. exponent n. 指数;coefficient n. 系数

  2. flag 用来标识是否输出了多项式的第一项。注意:输出的第一项并不一定是 n 次项,这也是为什么不用 exp == n 作为判断条件的原因。

    样例输入:

    5
    0 1 1 -3 0 10

    样例输出:

    x^4+x^3-3x^2+10
    // 而非 +x^4+x^3-3x^2+10

    不过这道题的前提就是输出一元 n 次多项式,即 ​a_n \ne 0,所以实际上不需要考虑上述情况。

创作不易,可以点点赞,如果能关注一下博主就更好了~  


http://www.ppmy.cn/news/55214.html

相关文章

计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?

文章目录 一、计算机视觉毕业后找不到工作怎么办&#xff1f;二、大环境&#xff1a;前两年的泡沫太大三、还是要把自己的基本功搞扎实&#xff0c;真正的人才什么时候都紧缺四、转换思路&#xff0c;另投他坑五、要有毅力&#xff0c;心态放平六、最后的建议 一、计算机视觉毕…

合创视觉平面设计中基础色彩原则

1、灰度 灰度是一种黑白模式的色彩模式。但与黑白二色的位图不同&#xff0c;从0--255有256种不同等级的明度变化。灰度是所有创造的根源&#xff0c;也是色彩感觉不佳设计师的救星。   2、RGB RGB是一种以色光为基础的色彩模式,它是由红(Red)、绿(Green)、蓝(BIue)三种…

选择什么电容笔比较好?平价好用的iPad电容笔推荐

科学技术的迅速发展使人们的生活发生了巨大的变化。如今&#xff0c;众多的电子和数码产品层出不穷&#xff0c;而这种能够与平板电脑配套的电容笔也是如此。随着电容笔的不断发展&#xff0c;其应用范围也将不断扩大&#xff0c;今天&#xff0c;我将向大家推荐一些具有较高性…

人群计数:技术难点、商业产品化成功案例、现状、传统做法、硬件设备、

现状&#xff1a; 比较成熟了&#xff0c;准确率已经很高了&#xff08;有多高&#xff0c;后面我搞懂metrics高到什么程度&#xff0c;再汇报过来&#xff09; 商业公司基本把这个领域做的很透彻了&#xff0c;performance基本到了一一个无法提高的位置了&#xff08;和图像…

实时数仓--数据实时接入模块相关视频录制完成

数据实时接入部分的视频已于昨晚录制完成&#xff0c;由于视频中涉及实现思路和实现代码都来自生产项目&#xff0c;且经过作者多次熬夜录制完成&#xff0c;所以这套视频需付费观看&#xff0c;介意的朋友请见谅。 具体说明如下&#xff1a; 对《实时数仓架构那些事儿》系列文…

视频是不能 P 的系列:使用 Milvus 实现海量人脸快速检索

最近我一直在优化一个人脸识别项目,这个过程令我深感科学的尽头永远都是殊途同归。一年前,我使用 dlib 实现人脸识别时遇到了两个悬而未决的问题:一是因为人脸样本数目增加导致性能下降问题;二是如何快速地判断目标人脸是否在人脸样本中。然而,在经过虹软人脸识别 SDK 的折…

内联函数\nullptr【C++初阶】

本文主要讲解内联函数相关知识点&#xff0c;随便讲讲指针空值nullptr 目录 前言 一、概念 二、特性 二、指针空值nullptr&#xff08;与前文关系不大&#xff09; 前言 在学习内联函数前&#xff0c;我们先回顾一下宏。 将下面的函数改为宏函数应该怎么改呢&#xff1…

Java多线程基础-7:wait() 和 notify() 用法解析

线程之间是抢占式执行的&#xff0c;线程调度是无序的、随机的&#xff0c;因此线程之间执行的先后顺序是难以预知的。但是&#xff0c;实际开发中&#xff0c;有时我们希望合理地协调多个线程间执行的先后顺序。 虽然 join() 算是一种控制顺序的方式&#xff0c;但它毕竟“功…