两个一元多项式相加(链表

2023-11-05

顺序表实现:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
#define maxsize 1000
struct Data
{
    double coef;
	int exp;
};
struct List
{
	Data* elem;
	int length;
};
char s[100];
map <int, int> m;
bool cmp(Data a, Data  b)
{
	return a.exp < b.exp;
}
void InitList(List &L)
{
    L.elem = (Data* )new Data[maxsize];
    L.length = 0;
}
void Derivative(int len, List L)
{
    int n = 1,flag = 0;
    for(int i = 0;i < len;i ++)
    {
        double coef = L.elem[i].coef;
        int exp = L.elem[i].exp;
         if(exp == 0)
        {
            coef = 0;
        }
        else
        {
            coef *= exp;
            exp --;
        }
         if(fabs(coef) < 1e-6)
            continue;
         else
         {
            flag = 1;
            if(n != 1 && coef > 0)
                printf("+");
            if(exp == 0)
                printf("%g", coef);
            else if(coef!= 1 && exp != 0 && coef != -1)
            {
                if(exp == 1)
                    printf("%gx",coef);
                else
                    printf("%gx^%d",coef, exp);
            }
            else if(coef == 1)
            {
                if(exp == 1)
                    printf("x");
                else
                    printf("x^%d",exp);
            }
            else if(coef == -1)
            {
                if(exp == 1)
                    printf("-x");
                else
                    printf("-x^%d",exp);
            }
            n ++;
        }
    }
    if(!flag) printf("0");
    printf("\n");
}
int main()
{
	freopen("in.txt", "r", stdin);
	List L;
	int op1 = 1, op2 = 1,op3 = 1,op4 = 1;
	double a;
	int b, cases = 1,flag;
	while(scanf("%s", s) != EOF)
	{
        printf("Case %d:\n",cases++);
        InitList(L);
		op1 = op2 = op3 = op4 = 1;
		flag = 0;
		int len = strlen(s);
		for(int i = -10000;i <= 10000;i ++)
			m[i] = -1;
		int k = 0;
		for(int i = 0;i < len;i ++)
		{
            a = 0;
			b = 0;
			op1 = op2 = 1;
			if(s[0] == '-' && i == 0)
            {
                op4 = -1;
                i ++;
            }
            if(s[i+1] == '(')
            {
                Derivative(k, L);
                flag = 1;
            }
			if(s[i] == '=') break;
			if(s[i] == '(') continue;
			if(s[i] == ')')
			{

				i ++;
				op4 = 1;
				if(s[i] == '=')
                {
					 if(!flag)
                        Derivative(k, L);
                     break;
                }
				else
				{
                    flag = 1;
					Derivative(k, L);
					if(s[i] == '+')
						op3 = 1;
					else if(s[i] == '-')
						op3 = -1;

				}
			}
            if(s[i] == '-')
			{

				i ++;
				op1 = -1;
			}
			else if(s[i] == '+')
			{
				i ++;
				op1 = 1;
			}
			if(s[i] >= '0' && s[i] <= '9')
			{
				while(s[i] >= '0' && s[i] <= '9' && i < len)
				{
					a = a*10+(s[i]-'0');
					i ++;
				}
				if(s[i] == '.')
				{
					i ++;
					double x = 0.1;
					while(s[i] >= '0' && s[i] <= '9' && i < len)
					{
						a += x*(s[i]-'0');
						i ++;
						x *= 0.1;
					}
				}
				a = a*op1*op3*op4;
			}
			else if(s[i] == 'x')
			{
				a = op1*op3*op4;
			}
			if(s[i] == 'x')
			{
				i ++;
				if(s[i] == '^')
				{
					i ++;
					if(s[i] == '-')
					{
						o
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个一元多项式相加(链表 的相关文章

  • hexo引用本地图片无法显示

    最近重新开始用起hexo 但是发现在文章中引用本地图片时总是显示不出来 问题如下图所示 花费了许久时间才解决这个问题 因此将一些解决经验整理出来 希望能帮助到大家 一 插件安装与配置 首先我们需要安装一个图片路径转换的插件 这个插件名字是h

随机推荐

  • 2023年智慧农业与经济发展国际研讨会议(ISSAED 2023)

    2023 International Seminar on Smart Agriculture and Economic Development 地点 合肥 智慧农业 农业信息管理系统 农业物联网系统集成与实践技术 农业大数据分析与应用 农
  • LLVM学习入门(2):实现解析器 Parser 和语法树 AST

    实现解析器 Parser 和语法树 AST 2 1 The Abstract Syntax Tree AST 语法抽象树 2 2 Parser Basics 基本的解析器 2 3 Basic Expression Parsing 基本表达式
  • 计算机与不确定性原理,不确定性原理

    题目 A simple baseline for bayesian uncertainty in deep learning 摘要 本文提出了一种简单 可扩展 通用的面向深度学习的不确定性表示和标定方法SWA Gaussian SWAG 随
  • SCILAB-自由科学计算软件

    SCILAB 自由科学计算软件 原创 2006 04 03 15 05 15 发表者 phoenixlin SCILAB是由法国国家信息与自动化研究院 INRIA 的科学家们开发的 开放源码 科学计算自由软件 SCILAB一词来源于英文 S
  • Graphics2D绘制图片,线段、矩形、圆形

    新建图片 BufferedImage newImage new BufferedImage 1079 512 BufferedImage TYPE INT RGB 获取绘图对象 Graphics2D g2d newImage createG
  • 访问云服务器文件共享,访问云服务器文件共享

    访问云服务器文件共享 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 安装传输工具在本地主机和Windows云服务器上分别
  • 数组工具类

    该工具类有两个方法 1 isContained方法用来判断一个数组中是否包含另一个数组中所有的数据 2 arrayDiff方法用来删除一个数组中与另一个数组中值相同的元素 arrUtil js文件 key存在时表示是对象数据 可以不存在时表
  • Flying to the Mars(字典树)

    Flying to the Mars Time Limit 5000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submission s 12965 A
  • 整形在内存中的存储

    目录 整形在内存中的存储 大小端字节序存储 什么是大端小端 判断大小端的代码 变量的创建是要在内存中开辟空间的 空间的大小是根据不同的类型而决定的 那接下来我们谈谈数据在所开辟内存中到底是如何存储的 整形在内存中的存储 计算机中的整数有三种
  • UE4 伤害事件,不同部位不同伤害(C++)

    UE4 伤害事件 不同部位不同伤害 C 可以先看射线检测 效果 打头和身体有不同的伤害 前面设置部分 先设置项目设置里的物理的Physical Surface 添加好身体的部位 2 添加了几个就几个变量 设置好它们的表面类型 3 找到被伤害
  • 第1章 数据库系统概论---数据库原理及应用

    目录 课程学习目标 本课程教学内容 课程教材 课程实践使用的数据库软件 第1章 数据库系统概论 1 数据库系统概述 一 基本概念 数据 文字 图片等数据化后存入计算机 数据库 DB 按一定的数据模型组织的共享数据 数据库管理系统 DBMS
  • python 读写hive

    最近正在 做一个 项目 需要把 算法模型的结果持久化 至hive 目前 使用的 pyhive 切记 在windows上不能使用 我目前在centos6 5上使用 官方说再macos和linux上可用 from pyhive import h
  • Vue中filter函数 过滤器的使用

    filters是什么 filters顾名思义是一个过滤器 就是对数据进行过滤筛选 将数据转化为我们想要的格式 但是他不会改变原始数据 filters分为两类 一 局部过滤器 局部过滤器的特点 只能作用于本组件没内 定义局部过滤器 在本组件内
  • Flutter和Android中的View

    在Android中 View是屏幕上显示的所有内容的基础 按钮 工具栏 输入框等一切都是View 在Flutter中 View相当于是Widget 然而 与View相比 Widget有一些不同之处 首先 Widget仅支持一帧 并且在每一帧
  • python3「非阻塞socket」报错 “BlockingIOError: [Errno 11]“ 复现以及分析解决

    梦想还在 生活当继续 一 前言 linux 下 用 python 的非阻塞 socket 通信时 遇到了 BlockingIOError Errno 11 Resource temporarily unavailable 错误 翻译报错信息
  • 链表-真正的动态数据结构

    创建节点 public class Node T val Node next public Node T val Node next this val val this next next public Node this null nul
  • keycloak~11.3.0之后微信认证问题解决

    基于keycloak11 0 3版的微信认证的实现 而在升级到keycloak14 0 0之后 这个认证出现了问题 原因是因为人家keycloak内部源码又变了 影响类文件 server spi private src main java
  • JS导出Excel自动获取table页面数据自动获取,并进行单元格合并行,列

    JS获取table页面数据自动获取 并进行单元格合并行 列 自己在百度上看的 感觉还可以 自己吧下面的代码复制就可以用了 关于无法启动Excel问题 这是HTML页面
  • 服务器定期巡检项目,服务器定期巡检制度..docx

    服务器定期巡检制度 服务器定期巡检制度为了保证省内各网点服务器正常 有序 安全运转 提升工作效率 保障客户能够更好的应用汇信科技产品及相关服务 特制定本制度 对服务器巡检加以规范 服务器由专人负责统一管理和日常维护 其他员工未经允许 不得擅
  • 两个一元多项式相加(链表

    顺序表实现 include