3.1多项式加法-作业

一元多项式的乘法与加法运算(c++实现) 原题为PTA数据结构mooc的线性表作业第二题,题目如下: 本人是c++初学者,代码还是感觉有点费劲,大家轻拍砖。整个程序的逻辑就是四个函数组成,分别Read()函数读取输入多项式信息并形成链表,printchain()函数打印链表,chainplus()函数实现两个链表的加法,chainmult()函数实现两个链表的乘法。在设计乘法函数时,在其中也调用了加法函数进行计算。 #include&... 阅读详情

一.代码输入

#include <stdio.h>
#include <malloc.h>


typedef struct LinkNode {
	int coefficient;
	int exponent;
	struct LinkNode* next;
} *LinkList, * NodePtr;


LinkList initLinkList() {
	LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode));
	tempHeader->coefficient = 0;
	tempHeader->exponent = 0;
	tempHeader->next = NULL;
	return tempHeader;
}

void printList(LinkList paraHeader) {
	NodePtr p = paraHeader->next;
	while (p != NULL) {
		printf("%d * x^%d + ", p->coefficient, p->exponent);
		p = p->next;
	}
	printf("\r\n");
}


void printNode(NodePtr paraPtr, char paraChar) {
	if (paraPtr == NULL) {
		printf("NULL\r\n");
	}
	else {
		printf("The element of %c is (%d * x^%d)\r\n", paraChar, paraPtr->coefficient, paraPtr->exponent);
	}
}

void appendElement(LinkList paraHeader, int paraCoefficient, int paraExponent) {
	NodePtr p, q;

	q = (NodePtr)malloc(sizeof(struct LinkNode));
	q->coefficient = paraCoefficient;
	q->exponent = paraExponent;
	q->next = NULL;

	p = paraHeader;
	while (p->next != NULL) {
		p = p->next;
	}

	p->next = q;
}

void add(NodePtr paraList1, NodePtr paraList2) {
	NodePtr p, q, r, s;

	p = paraList1->next;
	printNode(p, 'p');
	q = paraList2->next;
	printNode(q, 'q');
	r = paraList1;
	printNode(r, 'r');
	free(paraList2);

	while ((p != NULL) && (q != NULL)) {
		if (p->exponent < q->exponent) {
			printf("case 1\r\n");
			r->next = p;
			r = p;
			printNode(r, 'r');
			p = p->next;
			printNode(p, 'p');
		}
		else if ((p->exponent > q->exponent)) {
			printf("case 2\r\n");
			r->next = q;
			r = q;
			printNode(r, 'r');
			q = q->next;
			printNode(q, 'q');
		}
		else {
			printf("case 3\r\n");
			p->coefficient = p->coefficient + q->coefficient;
			printf("The coefficient is: %d.\r\n", p->coefficient);
			if (p->coefficient == 0) {
				printf("case 3.1\r\n");
				s = p;
				p = p->next;
				printNode(p, 'p');
			}
			else {
				printf("case 3.2\r\n");
				r = p;
				printNode(r, 'r');
				p = p->next;
				printNode(p, 'p');
			}
			s = q;
			q = q->next;
			free(s);
		}

		printf("p = %p, q = %p\r\n", p, q);
	}
	printf("End of while.\r\n");

	if (p == NULL) {
		r->next = q;
	}
	else {
		r->next = p;
	}

	printf("Addition ends.\r\n");
}

void additionTest1() {
	LinkList tempList1 = initLinkList();
	appendElement(tempList1, 7, 0);
	appendElement(tempList1, 3, 1);
	appendElement(tempList1, 9, 8);
	appendElement(tempList1, 5, 17);
	printList(tempList1);

	LinkList tempList2 = initLinkList();
	appendElement(tempList2, 8, 1);
	appendElement(tempList2, 22, 7);
	appendElement(tempList2, -9, 8);
	printList(tempList2);

	add(tempList1, tempList2);
	printf("The result is: ");
	printList(tempList1);
	printf("\r\n");
}

void additionTest2() {
	LinkList tempList1 = initLinkList();
	appendElement(tempList1, 7, 0);
	appendElement(tempList1, 3, 1);
	appendElement(tempList1, 9, 8);
	appendElement(tempList1, 5, 17);
	printList(tempList1);

	LinkList tempList2 = initLinkList();
	appendElement(tempList2, 8, 1);
	appendElement(tempList2, 22, 7);
	appendElement(tempList2, -9, 10);
	printList(tempList2);

	add(tempList1, tempList2);
	printf("The result is: ");
	printList(tempList1);
	printf("\r\n");
}

int main() {
	additionTest1();
	additionTest2();
	printf("Finish.\r\n");
	return 0;
}

2.输出结果

7 * x^0 + 3 * x^1 + 9 * x^8 + 5 * x^17 +
8 * x^1 + 22 * x^7 + -9 * x^8 +
The element of p is (7 * x^0)
The element of q is (8 * x^1)
The element of r is (0 * x^0)
case 1
The element of r is (7 * x^0)
The element of p is (3 * x^1)
p = 0000025C4FADDE70, q = 0000025C4FADDDD0
case 3
The coefficient is: 11.
case 3.2
The element of r is (11 * x^1)
The element of p is (9 * x^8)
p = 0000025C4FADDD30, q = 0000025C4FADDEC0
case 2
The element of r is (22 * x^7)
The element of q is (-9 * x^8)
p = 0000025C4FADDD30, q = 0000025C4FADDF10
case 3
The coefficient is: 0.
case 3.1
The element of p is (5 * x^17)
p = 0000025C4FADDD80, q = 0000000000000000
End of while.
Addition ends.
The result is: 7 * x^0 + 11 * x^1 + 22 * x^7 + 5 * x^17 +

7 * x^0 + 3 * x^1 + 9 * x^8 + 5 * x^17 +
8 * x^1 + 22 * x^7 + -9 * x^10 +
The element of p is (7 * x^0)
The element of q is (8 * x^1)
The element of r is (0 * x^0)
case 1
The element of r is (7 * x^0)
The element of p is (3 * x^1)
p = 0000025C4FADDF60, q = 0000025C4FADDB00
case 3
The coefficient is: 11.
case 3.2
The element of r is (11 * x^1)
The element of p is (9 * x^8)
p = 0000025C4FADE000, q = 0000025C4FADDB50
case 2
The element of r is (22 * x^7)
The element of q is (-9 * x^10)
p = 0000025C4FADE000, q = 0000025C4FADDBA0
case 1
The element of r is (9 * x^8)
The element of p is (5 * x^17)
p = 0000025C4FADE050, q = 0000025C4FADDBA0
case 2
The element of r is (-9 * x^10)
NULL
p = 0000025C4FADE050, q = 0000000000000000
End of while.
Addition ends.
The result is: 7 * x^0 + 11 * x^1 + 22 * x^7 + 9 * x^8 + -9 * x^10 + 5 * x^17 +

Finish.
使用 ArxivLoader 从 arXiv 加载学术文献并实现高效文档处理 arXiv是一个开放获取的学术存储平台,涵盖了物理、数学、计算机科学等多个领域的 200 万篇学术论文。这些文献中包含了如逻辑推理、机器学习等热门领域的最新研究进展。通过使用 ArxivLoader,我们可以轻松地搜索和加载 arXiv 上的学术文献,并将其转换为文本以供分析或应用于下游任务,例如问答系统、摘要生成或知识图谱构建。有时我们并不需要完整的文献内容,而是只需要摘要用于快速预览。可以使用 get_summaries_as_docs()# 获取文献摘要# 查看第一篇摘要。 阅读详情

相关推荐

QGroundControl或者华科尔地面站安装完打不开问题解决

QGroundControl 华科尔 打不开

wv112406的博客 4921

数据结构作业 5 —— 多项式的加法

【代码】数据结构作业 5 —— 多项式的加法。

2403_87341008的博客 593

超越PSPNet:PPM模块在医疗影像分割中的创新应用实验

本文探讨了PPM模块在医疗影像分割中的创新应用,通过定制化调整和优化策略显著提升分割精度。针对医疗影像的多尺度病灶特点,提出了动态尺度选择和交叉尺度融合模块(CSFM),结合PyTorch实现细节,使小病灶检测召回率提升11.3%。实验显示优化后的模型mIoU达到78.6%,较基线提升9.2个百分点,同时满足实时处理需求。

u9v0w的博客 219

多项式加法

题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,

Eaxker 550

ICC II 时钟树综合(CTS)前奏:从约束定义到NDR规则的全方位设置指南

本文详细介绍了ICC II中时钟树综合(CTS)的前期准备工作,包括约束定义、NDR规则设置和时钟平衡点控制等关键步骤。通过实际案例和代码示例,指导工程师如何优化时钟偏斜、插入延迟和信号质量,确保芯片设计的时序收敛和性能稳定。特别强调了非默认布线规则(NDR)在时钟网络设计中的重要性。

weixin_42530458的博客 212

doris2.1.8连接报错ERROR 1203 (42000): Reach limit of connections解决办法

摘要:客户Doris数据库报错"ERROR 1203 (42000): Reach limit of connections"的解决过程。发现AI提供的解决方案存在错误:1)查询命令应为SHOW FRONTEND CONFIG而非show variables;2)参数名称应为qe_max_connection而非max_connections。正确解决步骤:1)用admin账户登录查看连接数限制和当前连接数;2)通过SHOW PROPERTY命令检查用户资源限制;3)针对不同情况修改参数

Brent的专栏 1762

链表作业 3:多项式加法

题目描述: 实现两个一元n次多项式的加法。例如P(A)=x+3x2-5x5+7,P(B)=2x2+6x3+x5-4x6,求P(A)+P(B)。 输入:每行是两个用空格隔开的整数m,n,分别代表多项式的系数和指数,以输入0 0作为结尾 输出:每次完成一个多项式的输入后,先输出该多项式;当第二个多项式输出完成后,下一行输出两个多项式输出的结果 (多项式打印的要求: 如果是第一项,不要打+号 //如果不是第一项,且系数为正数,要打加号 //如果系数为负数,...

m0_63223213的博客 1521

用 ABAP CDS 把树建起来:Hierarchy 的建模、调试与消费全流程

CDS Hierarchy 将树形数据结构作为一等公民引入 ABAP 开发,通过定义父子关联、根节点条件和兄弟排序规则,让数据库原生支持层级查询。相比传统递归处理方式,它能避免性能瓶颈,提供$node系统字段描述节点结构信息,并支持与SAP UI框架无缝集成。这种方法简化了组织架构、成本中心等业务场景的层级数据处理,使开发人员能够专注于业务逻辑而非底层实现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 209

数据结构作业:一元多项式

数据结构作业:一元多项式 电子科学与技术 刘智宇 1950083 刘岸奇 1951127 问题描述(问题描述、问题分析、输入、输出样例的简单叙述) ①问题描述 设有一元多项式A(x)和B(x),现要求其相加结果C(x)=A(x)+B(x),其运算规则为:将两个多项式中指数相同的项对应系数相加,若和不为零,则构成C(x)中的一项; A(x)和B(x)中所有指数不相同的项均复抄到C(x)中。 ②问题分析: 需求:实现两个一元多项式的加法运算。 实现功能: 通过键盘接收输入的整数(浮点数)...

qq_45598367的博客 8173

【图像超分】论文精读:RepSR: Training Efficient VGG-style Super-Resolution Networks with Structural Re-Paramete

摘要: 本文提出RepSR,一种基于结构重新参数化和批量归一化(BN)的高效VGG式超分辨率网络。针对SR任务中BN易引发伪影的问题,作者通过分析发现训练-测试阶段的不一致性是主因,并提出先使用小批量统计训练、后期切换为总体统计的优化策略。RepSR块设计包含干净的残差路径和带改进BN的扩展-压缩卷积路径,有效平衡了训练非线性与推理效率。实验表明,RepSR在不同模型规模下优于现有重参数化方法,且实际推理速度更快。该工作为SR提供了性能与效率兼优的解决方案,相关代码未开源。 关键词: 超分辨率、结构重参数化

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 305

【忍者算法】从生活案例理解滑动窗口最大值:一个超直观的思路讲解|LeetCode 239 滑动窗口最大值

点此看全部题解更多干货,请关注公众号【忍者算法】,回复【刷题清单】获取完整题解目录~

忍者算法的博客 632

1:多项式加法

总时间限制: 1000ms 内存限制: 5000kB 描述     我们经常遇到两多项式相加的情况,在这里,我们就需要用程序来模拟实现把两个多项式相加到一起。首先,我们会有两个多项式,每个多项式是独立的一行,每个多项式由系数、幂数这样的多个整数对来表示。 如多项式2x20- x17+ 5x9- 7x7+ 16x5+ 10x4 + 22x2- 15 对应的表达式为:2 2

复习。 3086

2025_NIPS_Truthful Aggregation of LLMs with an Application to Online Advertising

大型语言模型(LLMs)生成内容的 revenue 变现是在线广告的下一个前沿领域。我们考虑这样一种场景:广告商旨在影响LLM的回复,而平台则寻求最大化广告商价值并确保用户满意度。核心挑战在于,广告商的偏好通常与用户偏好存在冲突,且广告商可能误报其偏好。为解决这一问题,我们提出MOSAIC——一种拍卖机制,它确保真实申报是广告商的占优策略,并使每个广告商的效用与其对社会福利的贡献保持一致。重要的是,该机制无需LLM微调或访问模型权重,且随着计算资源的增加,可证明收敛到最优微调LLM的输出。

c_cpp_csharp的专栏 82

两个一元多项式的加法计算----单链表的应用

实验要求如下: 实现两个一元多项式的加法运算。 要求: (1)设计函数 createPoly( ),建立一个以单链表形式表示的一元多项式,输 入次序不限,但要求单链表中元素按指数递增次序排列(不能采用排序算法)。 (2)设计函数 addPoly( ),实现任意两个多项 A 和 B 加法运算,相加结果 在多项式 A 中。要求结果链表仍使用原来两个链表的存储空间,不另外占用其 它的存储空间。 (3)...

weixin_46028606的博客 2664

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JAVA慕课作业 多项式加法解析

JAVA慕课作业 多项式加法 多项式加法(5分) 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数...

shanmama2434的博客 897

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

算法:一元多项式加法

题目描述 让我们重温小学初中时那些一元多项式的加法吧,不同的是现在使用计算机来帮我们计算了。多年前不想写作业的梦想终于快要实现了!下面就给出书上的算法。 输入 输入数据包含多组测试数据,每组数据包含两行一元多项式。每个多项式包含若干对整数,每对整数的第一个是系数,第二个是指数。每个多项式不超过100项,整数间用空格隔开,并且指数是递减的。 输出 每组测试数据输出一行结果,每个整数后面空一格。(包括行尾) 样例输入 3 2 4 1 7 0 2 4 1 1 2 3 1 4 3 2 4 1 7 0 2 4 -

a碟的博客 3235

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

作业1—一元多项式的相加

从键盘读入一元多项式中每一项的系数和指数,请编写算法实现: 1、建立带表头结点的单链表存放一元多项式(按照指数升序排列); 2、输出一元多项式的所有数据元素(按照指数升序输出每一系数非0项的系数和指数); 3、将单链表存放的一元多项式就地逆置,变成按照指数降序排列; 4、输入自变量的值,计算一元多项式的值(设计高效算法); 5、求2个一元多项式的和多项式; #include<stdio.h&...

qq_42717239的博客 2218

一元多项式加法

做题时被卡了好久,终于在一个崩溃的将while(1)换成while(getline)后ac了 实在是错得憋屈T~T所以来总结一下了 贴上题目 问题 一元多项式加法 题目描述 让我们重温小学初中时那些一元多项式的加法吧,不同的是现在使用计算机来帮我们计算了。多年前不想写作业的梦想终于快要实现了!下面就给出书上的算法。 输入 输入数据包含多组测试数据,每组数据包含两行一元多项式。每个多项式包含若干对...

Rachel__Gardner的博客 1314

C语言入门-MOOC-作业-多项式加法

多项式加法 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高...

weixin_45540987的博客 1322

Java习题踩坑:多项式加法

  小编最近在MOOC上选修了一门Java课程,每周都会有编程作业题,其中碰到了一道实现多项式加法的题目,花了不少时间,今天和大家分享一下。题目如下: 多项式加法 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输...

噢啦啦耶的博客 714

一元稀疏多项式的加法 (C语言链表实现)

数据结构作业 //本来要交作业,写完了,不收了???? #include<bits/stdc++.h> typedef struct LNode{ double coef;//系数 int expn;//指数 struct LNode *next; }LNode,*LinkList; void CreatPolyn(LinkList &P,int n){ //输...

王跃坤的博客 2372

MOOC-C语言入门--第七周作业-多项式加法

题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行...

程序王小白技术博客 1055

算法 线性结构2 一元多项式的乘法与加法运算

题目:设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 输入样例: 4 3 4 -...

Dezeming的博客 8828

数据结构作业 ------ 用链表实现简单多项式加法

数据结构作业01 ------ 用链表实现简单多项式加法 代码实现: 1 #include <iostream> 2 #include <cstring> 3 #include <cassert> 4 5 using namespace std; 6 7 class Node { 8 ...

HouRui2000的博客 547

递归实现多项式加法和乘法-3

这次作业的目的就是体会递归的思想。 递归实现加法:递归函数每次都将两个列表中的0号元素相加存到结果列表中,然后列表长度减少1继续执行同样的操作,通过回溯的方法把结果列表拼到一起。 递归实现乘法:长度较小的列表L1从索引len(L1)处一直递归到0号元素,然后计算,结果和需要添加的0用回溯的方法得到。 原谅我实在描述不出来思想。。。。。 程序如下: #递归实现多项式加法和乘法 de...

※夏日星空※ 616

多项式加法翁恺java_【C语言】多项式加法(mooc第七周测试题)

这个小题目吧我折磨的够呛,,主要在于特殊情况考虑不周,测试用例老是通不过。。小结:做法:用一个数组来存储多项式,用下标表示幂次数,数组元素值表示对应系数输出特殊格式考虑:系数和幂次数为0,1,-1的情况,负系数的对加号输出的影响题目内容:一个多项式可以表达为x的各次幂与系数乘积的和,比如:2x6+3x5+12x3+6x+20现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂...

weixin_32223631的博客 857
上一篇: 2.4静态链表-作业
下一篇: 3.1栈-作业
dev_cc_
博客等级 码龄3年 41粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值