PAT-甲级-1002 A+B for Polynomials
2017-10-12 15:02
627 查看
原文链接:PAT-甲级-1002
题目大意:
给两个多项式,每个多项式有K个项。每项由指数和系数构成。计算两个多个多项式的和,并按输入格式输出。解题思路:
由于指数0<=N<=1000,所以可以使用一个数组存储多项式的项,下标作为指数,值为系数。这样读入两个多项式并相加就可以得到结果多项式,然后将数组中值不为0的个数统计,就是结果多项式的项数,然后输出。应该注意的是使用double进行存储的时候可能会出现误差,判断时候不为0的时候应该注意不能直接与0相比。一开始我用了set来存指数,不用遍历数组,但是总是部分正确,很迷。
代码:
#include<iostream> #include<cmath> #include<cstdio> using namespace std; const int MAXN = 1000 + 5; const double esp = 0.04; double ans[MAXN] = { 0 }; void input() { int num, ex; 4000 double co; cin >> num; while (num--) { cin >> ex >> co; ans[ex] += co; } } int main() { input(); input(); int cnt = 0; for (int i = 0; i < MAXN; i++) { if (fabs(ans[i]) > esp) cnt++; } printf("%d", cnt); for (int i = 1000; i >= 0; i--) { if (fabs(ans[i]) > esp) printf(" %d %0.1lf", i, ans[i]); } printf("\n"); return 0; }
相关文章推荐
- PAT 甲级1002_A+B for Polynomials (25)
- PAT 甲级1002 A+B for Polynomials (25)
- PAT甲级1002 A+B for Polynomials
- 【PAT】甲级1002 - A+B for Polynomials(多项式加法)
- PAT甲级 1002 A+B for Polynomials (25)
- PAT 甲级 1002 A+B for Polynomials
- PAT程序设计考题——甲级1002(A+B for Polynomials ) C++实现
- Pat(Advanced Level)Practice--1002(A+B For Polynomials)
- PAT 甲级 1002. A+B for Polynomials
- PAT-Java-1002-A+B for Polynomials (25)
- PAT甲级1002. A+B for Polynomials (25)
- PAT 1002 A+B for Polynomials
- [PAT-甲级]1002.A+B for Polynomials
- pat甲级1002.A+B for Polynomials
- PAT甲级 1002. A+B for Polynomials (25)
- PAT 1002 A+B for Polynomials
- PAT(Advanced Level) 1002 - A+B for Polynomials(水题)
- 【PAT甲级】1002. A+B for Polynomials (25)
- PAT甲级练习题A1002. A+B for Polynomials
- PAT 甲级 1002. A+B for Polynomials