编程实现一元多项式的加法运算。第一个一元多项式A;第二个多项式B。以(0,0作为输入结束)C语言

时间: 2023-05-15 19:06:30 浏览: 62
实现如下: ```c #include <stdio.h> #include <stdlib.h> typedef struct Node { int coef; // 系数 int exp; // 指数 struct Node *next; } Node, *Polynomial; Polynomial createPoly() { Polynomial head = (Polynomial) malloc(sizeof(Node)); head->next = NULL; Node *tail = head; int coef, exp; scanf("%d %d", &coef, &exp); while (coef != 0 || exp != 0) { Node *node = (Node *) malloc(sizeof(Node)); node->coef = coef; node->exp = exp; node->next = NULL; tail->next = node; tail = node; scanf("%d %d", &coef, &exp); } return head; } Polynomial addPoly(Polynomial A, Polynomial B) { Polynomial C = (Polynomial) malloc(sizeof(Node)); C->next = NULL; Node *tail = C; Node *a = A->next, *b = B->next; while (a && b) { if (a->exp > b->exp) { Node *node = (Node *) malloc(sizeof(Node)); node->coef = a->coef; node->exp = a->exp; node->next = NULL; tail->next = node; tail = node; a = a->next; } else if (a->exp < b->exp) { Node *node = (Node *) malloc(sizeof(Node)); node->coef = b->coef; node->exp = b->exp; node->next = NULL; tail->next = node; tail = node; b = b->next; } else { int sum = a->coef + b->coef; if (sum != 0) { Node *node = (Node *) malloc(sizeof(Node)); node->coef = sum; node->exp = a->exp; node->next = NULL; tail->next = node; tail = node; } a = a->next; b = b->next; } } while (a) { Node *node = (Node *) malloc(sizeof(Node)); node->coef = a->coef; node->exp = a->exp; node->next = NULL; tail->next = node; tail = node; a = a->next; } while (b) { Node *node = (Node *) malloc(sizeof(Node)); node->coef = b->coef; node->exp = b->exp; node->next = NULL; tail->next = node; tail = node; b = b->next; } return C; } void printPoly(Polynomial poly) { Node *p = poly->next; if (!p) { printf("0 0\n"); return; } while (p) { printf("%d %d", p->coef, p->exp); p = p->next; if (p) { printf(" "); } else { printf("\n"); } } } int main() { Polynomial A = createPoly(); Polynomial B = createPoly(); Polynomial C = addPoly(A, B); printPoly(C); return 0; } ``` 第二个问题:lua closure factory 完整代码 ```lua function newCounter() local count = 0 return function() count = count + 1 return count end end c1 = newCounter() print(c1()) -- 1 print(c1()) -- 2 c2 = newCounter() print(c2()) -- 1 print(c1()) -- 3 ``` 第三个问题:中文加密 中文加密可以使用简单的替换算法,将每个汉字替换成另一个汉字或者一个字母。下面是一个简单的中文加密算法示例: ```python import random # 加密字典 encrypt_dict = { '你': 'a', '好': 'b', '吗': 'c', '我': 'd', '很': 'e', '不': 'f', '是': 'g', '的': 'h', '一': 'i', '个': 'j', '人': 'k', '在': 'l', '有': 'm', '他': 'n', '她': 'o', '们': 'p', '这': 'q', '那': 'r', '就': 's', '也': 't', '和': 'u', '不': 'v', '吧': 'w', '啊': 'x', '呢': 'y', '哦': 'z', } # 解密字典 decrypt_dict = {v: k for k, v in encrypt_dict.items()} def encrypt(text): result = '' for c in text: if c in encrypt_dict: result += encrypt_dict[c] else: result += c return result def decrypt(text): result = '' for c in text: if c in decrypt_dict: result += decrypt_dict[c] else: result += c return result text = '你好,世界!' encrypted_text = encrypt(text) print(encrypted_text) decrypted_text = decrypt(encrypted_text) print(decrypted_text) ``` 输出结果: ``` ab,世界! 你好,世界! ```

相关推荐

最新推荐

recommend-type

C语言:一元多项式加减法运算(链表 附答案).docx

C语言链表的入门题,里面提供了两种思路供参考,用链表来实现一元多项式的加减法,并按照一定规律输出。也是练习链表和排序算法的一道小实验,初学链表的小伙伴可以参考参考噢
recommend-type

使用c或C++一元稀疏多项式的加法运算

设计一个实现一元稀疏多项式相加运算的演示程序: (1)输入并建立两个多项式; (2)多项式a与b相加,建立和多项式c; (3)输出多项式a,b,c。输出格式:比如多项式a为:A(x)=c1xe1+ c2xe2+…+ cmxem,其中,ci和...
recommend-type

android手机应用源码Imsdroid语音视频通话源码.rar

android手机应用源码Imsdroid语音视频通话源码.rar
recommend-type

营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx

营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx
recommend-type

JavaScript_超过100种语言的纯Javascript OCR.zip

JavaScript
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。