您的位置:首页 > 其它

PAT甲级1002 A + B

2017-02-19 11:13 381 查看
PAT甲级1002

这个问题讲的就是多项式加起来,根据题意设置一个数组把系数存储起来就好了,最后输出。

Talk is cheap, show me the code.

//包含头文件
#include <iostream>
#include <cstdio>//需要保留小数点后一位,可以用%.1f,暂时还不会c++的标准输出
#define MAXK 1001 //在数组中使用

using namespace std;

int main(void)
{
float aK[MAXK] = { 0, };//系数数组,自带指数
int iN = 0;//需要输入的数目
int ix = 0;
float ia = 0;//指数和系数

//第一波攻击
cin >> iN;
for (int i = 0; i < iN; ++i)
{
cin >> ix >> ia;
aK[ix] += ia;
}//end of for (int i = 0; i < iN; ++i)

//第二波攻击
cin >> iN;
for (int i = 0; i < iN; ++i)
{
cin >> ix >> ia;
aK[ix] += ia;
}//end of for (int i = 0; i < iN; ++i)

//输入完毕,开始输出蛤
//先计算它的有效数吧
int iCount = 0;
for (int i = 0; i < MAXK; ++i)
{
if (aK[i] != 0)
{
++iCount;
}//end of if (aK[i] > 0)
}//end of for (int i = MAXK - 1; i >= 0; --i)

cout << iCount;//输出有效数

//按照题意从高到低输出
for (int i = MAXK - 1; i >= 0 && iCount > 0; --i)
{
if (aK[i] != 0)
{
printf(" %d %.1f", i, aK[i]);
--iCount;
}//end of if (aK[i] > 0)
}//end of for (int i = MAXK - 1; i >= 0; --i)
cout << endl;

return 0;
}


欢迎大家提出改进的建议。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: