欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

PAT甲级——1002. A+B for Polynomials (25)(C++)

程序员文章站 2022-04-10 09:38:47
解题思路创建一个数组float map[1001] = {0.0}作为哈希表,用数组的索引表示指数,对应位置存储的元素表示系数。开始我用的是cin, cout标准输入输出(在标准输出中保留小数点后1位的写法:cout << setiosflags(ios::fixed) << setprecision(1) << endl;),后来用scanf, printf输入输出更加简洁。实现代码#include using namespac...

解题思路

  • 创建一个数组float map[1001] = {0.0}作为哈希表,用数组的索引表示指数,对应位置存储的元素表示系数。
  • 开始我用的是cin, cout标准输入输出(在标准输出中保留小数点后1位的写法:cout << setiosflags(ios::fixed) << setprecision(1) << endl;),后来用scanf, printf输入输出更加简洁。

实现代码

#include <iostream>
using namespace std;

int main() {
    float c[1001] = {0};
    int m, n, t = 0;
    float num = 0.0;
    scanf("%d", &m);
    for (int i = 0; i < m; i++) {
        scanf("%d%f", &t, &num);
        c[t] += num;
    }
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d%f", &t, &num);
        c[t] += num;
    }
    int cnt = 0;
    for (int i = 0; i < 1001; i++) {
        if (c[i] != 0) cnt++;
    }
    printf("%d", cnt);
    for (int i = 1000; i >= 0; i--) {
        if (c[i] != 0) {
            printf(" %d %.1f", i, c[i]);
        }
    }
    return 0;
}

本文地址:https://blog.csdn.net/t0be_Better/article/details/108571861

相关标签: PAT甲级 哈希表