哈哈哈哈哈,很快就进入第二题了,废话不多说,先来看题。
这里直白的看数据大家可能会比较茫然,所以只能看题目,这里的主要题目意思是输入数字k和b,计算拥有相同k的所有b的和,在这里我们的数据结构中学到过多项是求和问题,这里可以用多项是求和的思路来进行求解,本人主要采用c++语言来实现该问题。
下面展示一些代码:
//将该问题转化为多项式求和问题,对于同一类型的x^1,x^2,.....,x^n对应相同次数的系数相加对应
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
double xishu[1001]={0};//在此处初始值需要归0
int k;
cin>>k;
while(k--){
int n;
double b;
cin>>n>>b;
xishu[n]+=b;
}
cin>>k;
while(k--){
int u;
double b;
cin>>u>>b;
xishu[u]+=b;
}
//计算有效数位
int sum=0;
for(int i=0;i<=1000;i++){
if(xishu[i]!=0){
sum++;
}
}
//输出是以高次到低次
cout<<sum;
for(int i=1000;i>=0;i--){
if(xishu[i]!=0){
printf(" %d %.1f",i,xishu[i]);
}
}
}
采用c++代码比较简短,同时简单易懂,这里最关键的是将问题转化为多项式求和问题(这是关键)