【NC16622】多项式输出

题目

多项式输出

模拟,注意细节

思路

一道模拟题,按要求模拟即可,没有算法上的难度,有的是动手的复杂性。这本来可以直接在主函数中写处理过程的,但是为了其更有通用性,在这里将其提取为一个函数,具体见代码。

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/*** @brief 根据系数数组和最高次幂生成降幂排列的多项式** @param coef 系数数组,长度为 n + 1* @param n 多项式的最高次幂* @param var 变量使用的字符,比如 x* @return char* 堆中的字符串,由调用者释放*/
char* gen(int* coef, int n, char var) {// 如果字符串长度可能很长,则将这里的N修改即可const int N = 1000;char* res = (char*)malloc(N * sizeof(char));int t = 0;for (int i = n; i >= 0; i--) {t = coef[n - i];// 系数为0,直接跳过if (!t) continue;if (i < n) {// 如果不是第一项,则系数前面要带符号sprintf(res + strlen(res), "%c", t > 0 ? '+' : '-');} else {// 如果是第一项,则只有负数才有符号if (t < 0) sprintf(res + strlen(res), "-");}// 接下来是输出系数if (t > 1 || t < -1) {// 如果是变量项且系数绝对值为 1 的话,就不用输出// 只用输出绝对值大于 1 的sprintf(res + strlen(res), "%d", t > 0 ? t : -t);} else {// 如果是最后一项,即常数项,则无论绝对值是多少都要输出if (!i) sprintf(res + strlen(res), "%d", t > 0 ? t : -t);}if (i > 0) {// 如果是变量项if (i != 1) {// 则只有指数不为 1 才输出指数sprintf(res + strlen(res), "%c^%d", var, i);} else {// 否则不用输出指数sprintf(res + strlen(res), "%c", var);}}}// 这里是将多余的空间截断,让字符串恰好占用其长度以及一个\0的空间n = strlen(res);realloc(res, n + 1);res[n] = 0;return res;
}int main(void) {int n = 0, t = 0;scanf("%d", &n);int coef[n + 1];for (int i = 0; i <= n; i++) {scanf("%d", coef + i);}char* ans = gen(coef, n, 'x');printf("%s\n", ans);free(ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress网站已经安装了SSL证书,但浏览器仍然提示不安全

WordPress网站已经安装了SSL证书&#xff0c;但浏览器仍然提示不安全 昨天我们新建了一个WordPress的网站&#xff0c;在已经安装了SSL证书的情况下&#xff0c;访问网站仍然会提示不安全。 我们使用的是Hostease提供的虚拟主机产品&#xff0c;之前从未出过这样的情况&#x…

【网络建设与运维】2024年浙江省职业院校技能大赛中职组“网络建设与运维”赛项规程

培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;775454947 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 极安云科专注于技能提升&#xff0c;赋能 2024年广东省高校的技能提升&#xff0c;受赋能的客户院校均…

用友BI方案:一键搞定财务、销售、生产等分析

别人家做用友的数据分析&#xff0c;从零开始搭建分析模型、设计BI数据可视化报表&#xff0c;反复测试修改&#xff0c;耗时耗力&#xff0c;效果未知。奥威BI做用友的数据分析&#xff0c;用用友BI方案&#xff0c;注册、下载执行&#xff0c;自动取数、计算指标、分析数据、…

达梦数据库自动备份(全库)+还原(全库) 控制台

一 前提 1.安装达梦数据库DB8(请参照以前文章) 我的数据库安装目录是 /app/dmDB8 2.已创建实例 (请参照上一篇文章) 二 准备测试数据 三 自动备份步骤 1.开启归档模式 开启DM管理工具管理控制台 弹不出来工具的 输入命令 xhost 第一步 将服务器转换为配置状态 右键-&g…

【Go语言Decoder报错gob: duplicate type received】

1.场景 要写一个网络通信的&#xff0c;服务器一直监听并解析请求。客户端接收到java端后每次都用一个新的Encoder发送一个数据结构给服务器的Decoder。导致报错&#xff1a;gob: duplicate type received 2. 分析 我的代码报错“gob: duplicate type received”&#xff0c…

后端常问面经之Spring和Mybatis框架

Spring的IOC介绍一下&#xff1a; 所谓控制就是对象的创建、初始化、销毁。 创建对象&#xff1a;原来是 new 一个&#xff0c;现在是由 Spring 容器创建。 初始化对象&#xff1a;原来是对象自己通过构造器或者 setter 方法给依赖的对象赋值&#xff0c;现在是由 Spring 容器…

AI研报:从Sora看多模态大模型发展

《从Sora看多模态大模型发展》的研报来自浙商证券&#xff0c;写于2024年2月。 这篇报告主要探讨了多模态大模型的发展趋势&#xff0c;特别是OpenAI发布的视频生成模型Sora&#xff0c;以及其对行业发展的影响。以下是报告的核心内容概述&#xff1a; Sora模型的发布&#x…

【学习】python标准库importlib.import_module,用于动态导入模块。

importlib.import_module 是 Python 标准库中的一部分&#xff0c;用于在运行时动态地导入模块。 具体用法示例&#xff1a; # module1.py def say_hello():print("Hello from module 1!")# module2.py def say_hello():print("Hello from module 2!")imp…

面试算法-103-对链表进行插入排序

题目 给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。 每次迭代中&#xff0c;插入排序…

基于单片机的太阳能充电系统设计

摘要:本文所设计的太阳能充电系统主要由以下几个模块组成:STC89C52 主控模块、TP4056 充电电路、电压AD 采集模块、LCD1602 液晶显示模块和太阳能充电电池等组成。此太阳能充电器制作简单,性价比高,性能稳定。 关键词:LCD1602;太阳能充电系统;ADC0832 太阳能充电系统的充…

MySQL WHERE 条件查询

我们通常要求在执行 SELECT 查询时&#xff0c;都要带上查询条件。那这一节&#xff0c;我们就来学习一些简单的 WHERE 条件查询。 我们仍然以技术派文章表 article 为例&#xff0c;比如说我们要查找标题为“聊聊分库分表”的文章&#xff0c;可以这么写&#xff1a; SELECT *…

echarts做水滴图;解决[echarts] unknown series liquidfill 水球加载问题

一份echarts示例代码&#xff0c;包含水滴图 直接在echarts里使用水滴图liquidfill会报错[echarts] unknown series liquidfill 解决方案&#xff1a;需要下载echarts-liquidfill依赖 echarts-liquidfill2兼容echarts4; echarts-liquidfill3兼容echarts5; 例如&#xff1a;我的…

Error establishing a database connection

WordPress网站打开的时候出现“Error establishing a database connection”是怎么了呢&#xff1f;被黑了吗&#xff1f; 大家在使用WordPress建站时常遇到这样的问题。根据我的经验&#xff0c;出现这个情况一般有下以几种原因&#xff1a; 1、数据库密码填写的有误。需要检…

IDEA使用手册

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

【vue3(七)】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、ref二、TS接口泛型规范1.创建ts文件&#xff0c;定义接口2.引入规范 三、props的使用四、生命周期&#xff08;生命周期函数&#xff0c;生命周期钩子&…

MySQL多表联查函数

1 多表联查 1.1 表之间的关系 表和表的关系有: 一对一 老公 --> 老婆 , 人 ---> 身份证/户口本 一对多 皇帝 --> 妻妾 , 人 ---> 房/车 多对多 订单 --> 商品 1.2 合并结果集 合并结果集,是将多表查询的结果纵向合并 语法: select field1,field2 from t1 un…

rust中字符串String常用方法和注意事项

Rust 中通常说的字符串指的是&#xff1a;String 和 &str(字符串字面值、或者叫字符串切片)这两种类型。str是rust中基础字符串类型&#xff0c;String是标准库里面的类型。Rust 中的字符串本质上是&#xff1a;Byte的集合&#xff08;Vec<u8>&#xff09; 基础类型…

【第三方登录】Google邮箱

登录谷歌邮箱开发者 https://console.developers.google.com/ 先创建项目 我们用的web应用 设置回调 核心主要&#xff1a; 1.创建应用 2.创建客户端ID 3.设置域名和重定向URL 4.对外公开&#xff0c;这样所有的gmail邮箱 都能参与测试PHP代码实现 引入第三方包 h…

Git 的cherry-pick含义

目录 1. cherry-pick的基本概念 2. cherry-pick的使用场景 3. cherry-pick的使用方法 结论 1. cherry-pick的基本概念 git cherry-pick是一个Git命令&#xff0c;它允许你选择一个或多个其他分支上的提交&#xff08;commits&#xff09;&#xff0c;并将它们复制到你当前的…

Spring实例化Bean的三种方式

参考资料&#xff1a; Core Technologies 核心技术 spring实例化bean的三种方式 构造器来实例化bean 静态工厂方法实例化bean 非静态工厂方法实例化bean_spring中有参构造器实例化-CSDN博客 1. 构造函数 1.1. 空参构造函数 下面这样表示调用空参构造函数&#xff0c;使用p…