PAT甲级1009水题飘过
题目分析:简单的多项式的模拟乘法,你可以假设未知数为x,exp为x的指数,coe为x的系数,则很容易就把答案推算出来,注意答案是从指数的高往低输出,同时要注意的是这是多项式的乘法,虽然指数的范围只有0~1000,但是乘法结果的指数范围为0~2000,注意数组定义的范围,开小了会产生段错误(下标越界,访问了不该访问的内存)
#include<iostream>
using namespace std; struct Node{
int exp; //指数
double coe; //系数
}k[], a[], b[]; //对于k数组来说下标即对应指数 所以exp对于k数组来说其实是多余的 //初始化结构体数组
void init(){
for(int i = ; i <= ; i++){
a[i].exp = ;
a[i].coe = ;
b[i].exp = ;
b[i].coe = ;
}
for(int i = ; i <= ; i++){
k[i].exp = ;
k[i].coe = ;
}
} int main(){
int n1, n2;
while(scanf("%d", &n1) != EOF){
init();
for(int i = ; i <= n1; i++){
scanf("%d%lf", &a[i].exp, &a[i].coe);
}
scanf("%d", &n2);
for(int i = ; i <= n2; i++){
scanf("%d%lf", &b[i].exp, &b[i].coe);
}
for(int i = ; i <= n1; i++){
for(int j = ; j <= n2; j++){
//对a数组中的每一位都与b数组的每一位相乘,将结果存储到k数组中
//得到指数
int exp = a[i].exp + b[j].exp;
//得到系数
double coe = a[i].coe * b[j].coe;
k[exp].coe += coe;
}
}
//统计一遍有多少项是有意义的(系数不为0)
int num = ;
for(int i = ; i >= ; i--){
if(k[i].coe != ) num++;
}
printf("%d", num);
//从高位到低位输出都有的系数不为0的情况下的多项式的每一项
for(int i = ; i >= ; i--){
if(k[i].coe != ){
printf(" %d %0.1lf", i, k[i].coe);
}
}
printf("\n");
}
return ;
}
PAT甲级1009水题飘过的更多相关文章
- PAT甲级1019水题飘过
题目分析: 将n转成对应大小的b进制数之后判断是否为回文串,是则Yes,否则No #include<iostream> using namespace std; ]; //存放从0开始b进 ...
- PAT甲级1006水题飘过
题目分析:由于不存在相同的两个时间(24:00:00和00:00:00不会同时存在),则我们假设两个全局变量存放到达的最早的时间和达到的最晚的时间,设置最早的初值为“23:59:59”,设置最晚的初值 ...
- PAT甲级1011水题飘过
题目分析:对于输入的数据分三条,选出每条中最大值记录下来,按照题目要求算出最大可能的获利即可 #include<iostream> using namespace std; ]; //k数 ...
- PAT甲级1008水题飘过
题目分析:上去下来到达的时间和数量 #include<iostream> using namespace std; ]; int main(){ int n; while(scanf(&q ...
- PAT甲级1005水题飘过
题目分析:用一个字符串输入之后遍历每一位求和后,不断%10获取最后一位存储下来,逆序用对应的英文单词输出(注意输入为0的情况) #include<iostream> #include< ...
- PAT甲级1002水题飘过
#include<iostream> #include<string.h> using namespace std; ]; int main(){ int n1, n2; wh ...
- PAT甲级1001水题飘过
#include<iostream> using namespace std; int main(){ int a, b; while(scanf("%d%d", &a ...
- PAT甲级 散列题_C++题解
散列 PAT (Advanced Level) Practice 散列题 目录 <算法笔记> 重点摘要 1002 A+B for Polynomials (25) 1009 Product ...
- PAT甲级训练刷题代码记录
刷题链接:https://www.patest.cn/contests/pat-a-practise 1001 #include <iostream> #include <stdio ...
随机推荐
- 从ArcGIS连接Oracle数据库,并将Oracle数据库注册到ArcGIS Server
环境说明 客户端机器环境: ① Win7 SP1 64位 ② ArcGIS Desktop 10.2 32位 ③ ArcGIS Server 10.2 64位 服务器环境 ① Windows Serv ...
- 去掉WARN spring.jpa.open-in-view is enabled by default
使用springboot jpa,在运行项目时发现一个WARN WARN 11472 --- [ main] aWebConfiguration$JpaWebMvcConfiguration : sp ...
- odoo连接外部数据库
odoo框架默认的访问时Postgres数据库,但在实际的应用场景中,不可避免的使用到其他数据库,所以有必要研究如何连接其他第三方数据库,这里分享下OCA的相关模块,具体的源代码在这里. 我将第三方的 ...
- CentOS 7.7安装Erlang和Elixir
安装之前,先看一下它们的简要说明 Erlang Erlang是一种开源编程语言,用于构建对高可用性有要求的大规模可扩展的软实时系统.它通常用于电信,银行,电子商务,计算机电话和即时消息中.Erlang ...
- 推荐一款好用的json导出execl格式的文件的js工具-JsonExportExcel
<html> <head> <meta charset="utf-8"> <title>json导出Excel</title& ...
- 24 AdminLTE 基础入门
1.AdminLTE介绍 AdminLTE是一款建立在bootstrap和jquery之上的开源的模板主题工具,它提供了一系列响应的.可重复使用的组件,并内置了多个模板页面:同时自适应多种屏幕分辨率, ...
- linux 压缩文件 查找
zgrep '20190521155553776237' stdout-20190521.log.gz
- JAVA知识点总结篇(一)
JVM(Java Virtual Machine):源文件->编译器->字节码文件->解释器->程序: JDK:Java Development Kit,Java开发工具包: ...
- Python爬虫之旅(一):小白也能懂的爬虫入门
Python爬虫之旅(一):小白也能懂的爬虫入门 爬虫是什么 爬虫就是按照一定的规则,去抓取网页中的信息.爬虫流程大致分为以下几步: 向目标网页发送请求 获取请求的响应内容 按照一定的规则解析返回 ...
- linux 查询某个时间段的日志
目前因发生了异常大概记得发生的时间段,想查看这个时间段的日志 如我们的日志格式如下 1:09:59.946 [http-nio-12129-exec-10] INFO ntroller start = ...