加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

1002 A+B for Polynomials (25 分)

发布时间:2020-12-13 23:36:34 所属栏目:Linux 来源:网络整理
导读:This time,you are supposed to find? A + B?where? A?and? B?are two polynomials. Input Specification: Each input file contains one test case. Each case occupies 2 lines,and each line contains the information of a polynomial: K? N ? 1 ??? a ?

This time,you are supposed to find?A+B?where?A?and?B?are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines,and each line contains the information of a polynomial:

K?N?1???a?N?1?????N?2???a?N?2?????...?N?K???a?N?K????

where?K?is the number of nonzero terms in the polynomial,?N?i???and?a?N?i?????(,) are the exponents and coefficients,respectively. It is given that?1,0.

Output Specification:

For each test case you should output the sum of?A?and?B?in one line,with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.

Sample Input:

2 1 2.4 0 3.2
2 2 1.5 1 0.5

Sample Output:




3 2 1.5 1 2.9 0 3.2
#include<iostream>
#include<cstdio>
#include<string.h>

using namespace std;
double a[1001] = { 0.0 };
char str[1000] = "",str1[100];//将str[100]扩大为1000,运行时错误便可以去掉
int main() {
    int n;
    cin >> n;
    int i;
    double j;
    while (n--) {
        cin >> i >> j;
        a[i] += j;
    }
    cin >> n;
    while (n--) {
        cin >> i >> j;
        a[i] += j;
    }
    int cnt = 0;
    for (i = 1000; i >= 0; i--) {
        if (a[i] != 0) {
            sprintf(str1," %d %0.1lf",i,a[i]);
            strcat(str,str1);
            cnt++;
        }
    }
    cout << cnt << str;
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读