题目分析:简单的多项式的模拟乘法,你可以假设未知数为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水题飘过的更多相关文章

  1. PAT甲级1019水题飘过

    题目分析: 将n转成对应大小的b进制数之后判断是否为回文串,是则Yes,否则No #include<iostream> using namespace std; ]; //存放从0开始b进 ...

  2. PAT甲级1006水题飘过

    题目分析:由于不存在相同的两个时间(24:00:00和00:00:00不会同时存在),则我们假设两个全局变量存放到达的最早的时间和达到的最晚的时间,设置最早的初值为“23:59:59”,设置最晚的初值 ...

  3. PAT甲级1011水题飘过

    题目分析:对于输入的数据分三条,选出每条中最大值记录下来,按照题目要求算出最大可能的获利即可 #include<iostream> using namespace std; ]; //k数 ...

  4. PAT甲级1008水题飘过

    题目分析:上去下来到达的时间和数量 #include<iostream> using namespace std; ]; int main(){ int n; while(scanf(&q ...

  5. PAT甲级1005水题飘过

    题目分析:用一个字符串输入之后遍历每一位求和后,不断%10获取最后一位存储下来,逆序用对应的英文单词输出(注意输入为0的情况) #include<iostream> #include< ...

  6. PAT甲级1002水题飘过

    #include<iostream> #include<string.h> using namespace std; ]; int main(){ int n1, n2; wh ...

  7. PAT甲级1001水题飘过

    #include<iostream> using namespace std; int main(){ int a, b; while(scanf("%d%d", &a ...

  8. PAT甲级 散列题_C++题解

    散列 PAT (Advanced Level) Practice 散列题 目录 <算法笔记> 重点摘要 1002 A+B for Polynomials (25) 1009 Product ...

  9. PAT甲级训练刷题代码记录

    刷题链接:https://www.patest.cn/contests/pat-a-practise 1001 #include <iostream> #include <stdio ...

随机推荐

  1. linux驱动开发学习一:创建一个字符设备

    首先是内核初始化函数.代码如下.主要是三个步骤.1 生成设备号. 2 注册设备号.3 创建设备. #include <linux/module.h> #include <linux/ ...

  2. vim、vi 快捷键

    普通模式 移动光标 nj.nk 上下移动n行 nb.nw 前后移动n个单词 nh.nl 左右移动n个字符 L 移到屏幕的最后一行 M 移到屏幕的中间一行 H 移到屏幕的第一行 nG 移到文件第n行 G ...

  3. 【Spring Cloud学习之二】服务注册和发现

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 Spring Cloud 1.2 一.EurekaEureka是Netflix开源的一个RESTful服务,主要用于服 ...

  4. mysql新建用户host使用%但使用localhost无法连接

    今天新建了一个用户,权限也给了,host设置的为% 但是使用该用户连接时出现如下错误 查看用户 mysql> select host,user,password from mysql.user; ...

  5. 1.2 lvm镜像卷

    镜像能够分配物理分区的多个副本,从而提高数据的可用性.当某个磁盘发生故障并且其物理分区变为不可用时,您仍然可以访问可用磁盘上的镜像数据.LVM 在逻辑卷内执行镜像.  系统版本: # cat /etc ...

  6. latex 写大论文图目录中图注过长解决方案

    写论文(尤其是学位论文)的时候,Figure通常都是有很长的注释,而Latex的list of figures似乎不能换行(看到有换行的,不过感觉不够美观). 再说,list of figures里面 ...

  7. Resharper速度慢解决办法

    Reshaper很好用,但是安装后速度特别慢,大部分情况下,我们只需要使用一些插件功能,代码自动分析功能可以关闭,如图:取消Code analysis即可.

  8. Python的基本数据类型2

    1.str(字符串) 1.切片 str = "你好,我是Python" s = str[0:4] #用法[start:end:step],指定开始下标和结束下标,step是步长,默 ...

  9. ETCD服务

    ETCD 简介 ETCD是一个开源的.分布式的键值对数据存储系统,由Go语言实现,用于存储key-value键值对,同时不仅仅是存储,主要用途是提供共享配置及服务发现,使用Raft一致性算法来管理高度 ...

  10. 让js中的函数只有一次有效调用

    设置隐藏域~ <input type="hidden" value="1" id="flag" /> 其它三种方法