当前位置: 代码迷 >> 综合 >> PAT1002 A+B for Polynomials
  详细解决方案

PAT1002 A+B for Polynomials

热度:99   发布时间:2023-11-08 14:52:23.0

题目分析:多项式相加。
又犯了先前相同的错误,数组开的最大为1100,那么下面遍历的时候,起始最大只能是1009,否则就会造成想不到的错误。

#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
typedef long long ll;
double aa[1100],bb[1100],cc[1100];
int k1,k2;
int main(){
    int x;double y;cin>>k1;for(int i=0;i<k1;i++){
    cin>>x>>y;aa[x]=y;}cin>>k2;for(int i=0;i<k2;i++){
    cin>>x>>y;bb[x]=y;}int ans=0;for(int i=0;i<1100;i++){
    if(bb[i]!=0&&aa[i]!=0){
    cc[i]=bb[i]+aa[i];if(cc[i]!=0){
    ans++;}continue;}if(bb[i]!=0){
    cc[i]=bb[i];ans++;continue;}if(aa[i]!=0){
    cc[i]=aa[i];ans++;continue;}}cout<<ans;for(int i=1009;i>=0;i--){
    if(cc[i]!=0){
    //printf(" %d %.1f",i,cc[i]);cout << " " << i << " ";cout << setiosflags(ios::fixed);cout << setprecision(1) << cc[i];}}cout<<endl;return 0;
}