频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
A+B for Polynomials“编程题”
2017-10-13 16:08:00         来源:Miracle42的博客  
收藏   我要投稿

题目大意:

给两个多项式,每个多项式有K个项。每项由指数和系数构成。计算两个多个多项式的和,并按输入格式输出。


解题思路:

由于指数0<=N<=1000,所以可以使用一个数组存储多项式的项,下标作为指数,值为系数。这样读入两个多项式并相加就可以得到结果多项式,然后将数组中值不为0的个数统计,就是结果多项式的项数,然后输出。应该注意的是使用double进行存储的时候可能会出现误差,判断时候不为0的时候应该注意不能直接与0相比。
一开始我用了set来存指数,不用遍历数组,但是总是部分正确,很迷。


代码:

#include
#include
#include

using namespace std;

const int MAXN = 1000 + 5;
const double esp = 0.04;

double ans[MAXN] = { 0 };

void input()
{
  int num, ex;
  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;
}
点击复制链接 与好友分享!回本站首页
上一篇:闰年判断“编程题”
下一篇:yaf基础使用教程
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站