题目分析:简单的多项式的模拟乘法,你可以假设未知数为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. Gerrit - 一些基本用法

    1 - 主配置文件 主配置文件位于$GERRIT_SITE/etc/gerrit.config目录 [gerrit@mt101 ~]$ cat gerrit_testsite/etc/gerrit.c ...

  2. Guide of Apache Directory Studio

    Default User and Password admin secret

  3. 晶体管放大电路与Multisim仿真学习笔记

    前言 开始写点博客记录学习的点滴,第一篇就写基本的共射极放大电路吧. 很多教材都是偏重理论,而铃木雅臣著作的<晶体管电路设计>是一本很实用的书籍,个人十分推荐! 下面开始我的模电重温之旅吧 ...

  4. electron实现MessageBox

    1.在渲染进程引用主进程模块 var remote = require('electron').remote; var dialog = remote.dialog; 2.实现一点简单的确定取消操作 ...

  5. ThinkPHP3验证码、文件上传、缩略图、分页(自定义工具类、session和cookie)

    验证码 TP框架中自带了验证码类 位置:Think/verify.class.php 在LoginController控制器中创建生存验证码的方法 login.html登陆模板中 在LoginCont ...

  6. kafka的分区

    分区会均匀的分配到不同的broke上,即不同的机器上.

  7. [转帖]LINUX PID 1 和 SYSTEMD

    LINUX PID 1 和 SYSTEMD 2017年07月16日 陈皓 评论 46 条评论  57,176 人阅读 https://coolshell.cn/articles/17998.html ...

  8. was unable to refresh its cache! status = Cannot execute request on any known server

    出现这种错误是因为: Eureka服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为. 在 yml中设置 eureka.client.register-with-eu ...

  9. windows和linux环境下java调用C++代码-JNI技术

    最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结 ...

  10. libevent源码分析一--io事件响应

    这篇文章将分析libevent如何组织io事件,如何捕捉事件的发生并进行相应的响应.这里不会详细分析event与event_base的细节,仅描述io事件如何存储与如何响应. 1.  select l ...