这一题是一道模拟计算题,只要足够细心就可以解决问题。

原题链接
L2-018 多项式A除以B (25 分)
这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。

输入格式:
输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:

N e[1] c[1] … e[N] c[N]
其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。

输出格式:
分两行先后输出商和余,输出格式与输入格式相同,输出的系数保留小数点后1位。同行数字间以1个空格分隔,行首尾不得有多余空格。注意:零多项式是一个特殊多项式,对应输出为0 0 0.0。但非零多项式不能输出零系数(包括舍入后为0.0)的项。在样例中,余多项式其实有常数项-1/27,但因其舍入后为0.0,故不输出。

输入样例:
4 4 1 2 -3 1 -1 0 -1
3 2 3 1 -2 0 1
输出样例:
3 2 0.3 1 0.2 0 -1.0
1 1 -3.1


这一题的关键就是创建一个多项式的结构体,结构体中记录了该多项式的最大指数。之后进行模拟计算,就可以实现自己的代码。


#include<cstdio>
#include<math.h>
#include<algorithm>
#include<iostream>
using namespace std;
using namespace std;
const int N = 10000;
const float MIN = 0.1;
struct node {int max_index;double ratio[N] = {0};
}a,b,ans;
int cnt_count(node cp){int cnt = 0;for(int i = cp.max_index; i >= 0; i--){if(abs(cp.ratio[i]) >= MIN) cnt++;}return cnt;
}
void print(node cp){int cnt = cnt_count(cp);if(cnt == 0) printf("0 0 0.0");else{printf("%d", cnt);for(int i = cp.max_index; i >= 0; i--){if(abs(cp.ratio[i]) >= MIN) printf(" %d %.1f", i,cp.ratio[i]);}}
}
int main(){int n,m,ind;scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &ind);scanf("%lf", &a.ratio[ind]);if(i == 1) a.max_index = ind;}scanf("%d", &m);for(int i = 1; i <= m; i++){scanf("%d", &ind);scanf("%lf", &b.ratio[ind]);if(i == 1) b.max_index = ind;}while(a.max_index >= b.max_index){int mul_index = a.max_index - b.max_index;double mul_ratio = a.ratio[a.max_index] / b.ratio[b.max_index];for(int i = 0; i <= b.max_index; i++){if(abs(b.ratio[i]) + 0.05 < MIN) continue;double tem_ratio = mul_ratio * b.ratio[i];int tem_index = mul_index + i;a.ratio[tem_index] -= tem_ratio;}//更新ansans.ratio[mul_index] = mul_ratio;ans.max_index = max(ans.max_index,mul_index);//更新aint flag = 0;for(int i = a.max_index; i >= 0; i--){if(abs(a.ratio[i]) + 0.05 >= MIN){a.max_index = i;flag = 1;break;}}if(flag == 0)a.max_index = 0;}print(ans);printf("\n");print(a);return 0;
}

模拟计算(L2-018 多项式A除以B (25 分))相关推荐

  1. 【CCCC】L2-018 多项式A除以B (25分),多项式除法

    problem L2-018 多项式A除以B (25分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入 ...

  2. L2-018 多项式A除以B (25 分)

    two L2-018 多项式A除以B (25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行 ...

  3. L2-018 多项式A除以B (25分)

    这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...

  4. 7-2 计算正五边形的面积和周长 (25分)

    这道题不难,有一个坑点是Math.tan函数的参数注意单位是rad 这使得我卡了半天,又没按照题目要求写,没全对,鉴借的别人的代码,特此记录 import java.text.DecimalForma ...

  5. 多项式A除以B(模拟)

    L2-018 多项式A除以B (25 分) 题目链接 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. [输入格式] 输入分 ...

  6. 多项式A除以B(模拟多项式除法)

    这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...

  7. PTA 多项式A除以B (25 分)

    7-10 多项式A除以B (25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一 ...

  8. 2016CCCC天梯--多项式A除以B

    L2-018. 多项式A除以B 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这仍然是一道关于A/B的题,只不过A和B都换成了 ...

  9. 第8节 蒙卡模拟计算美式期权价格(a)

    第8节 蒙卡模拟计算美式期权价格(a) 8.1 简介 8.2 最小二乘法计算美式期权价格 8.3 算法Python代码实现 8.4 计算示例 8.5 相关说明 8.5.1 美式看涨期权不会被提前行使 ...

最新文章

  1. 啥不懂也能动手搭建属于自己的博客网站
  2. 如何在pandas中使用loc、iloc函数进行数据索引
  3. MyBatis1:MyBatis入门
  4. 做弱电机房工程的时候,如何解决机房称重问题?
  5. java函数求方程,Commons Math学习笔记——函数方程求解
  6. 如何遍历一个JS对象中的所有属性,输出键值对--我居然犯错半个小时
  7. mybatis 原理_Mybatis工作流程及其原理与解析
  8. 虚拟网络的组建和应用课后习题答案
  9. Vue中使用axios的响应拦截器处理请求失败的情况(处理token过期问题)以及 登录成功跳转回原来页面问题
  10. js 多个input值拼接json字符串
  11. UI学习笔记---EasyUI panel插件使用---03
  12. Linux下自动化监控内存、存储空间!
  13. weblogic部署静态网页
  14. 【每日一具17】CAD迷你画图/最新2020R9
  15. Docker搭建Jenkins2.60.3版本,及更换jenkins下载源
  16. echarts双折线图自定义tooltips样式
  17. [POI 2009]Lyz
  18. C 彩色艺术化二维码样式设计(仅说思路)
  19. Vue 仿Transfer 穿梭框功能实现人员选择,左侧备选列表,右侧已选列表,带搜索带备注项
  20. 人类创造出来的世界——电子世界

热门文章

  1. (待拔草)关于电烙铁焊接时排放有毒气体的现象、解决方法
  2. java开发视频教学,阿里创新发布《新高并发宝典》
  3. python爬虫可以用来做什么?
  4. 大数据时代,企业如何发挥数据的重要性?
  5. 计算机网络3-24 假定站点A和B在同一个10Mb/s以太网网段上。这两个站点之间的传播时延为225比特时间。现假定A开始发送一帧,并且在A发送结束之前B也发送一帧。如果A发送的是以太网所容许的
  6. IntelliTone™ Pro 200 LAN 音频发生器和探针
  7. java计算机毕业设计WEBOA办公信息管理系统源码+数据库+系统+lw文档
  8. 如何在CSDN中添加目录
  9. 【计算机视觉】数字图像与机器视觉基础
  10. 滑雪道c语言程序,POJ1088 滑雪 dp C语言