概述
多项式加法~数组实现
直接贴代码了
#include<stdio.h>
typedef struct ploynode{
int expon;
double coef;
}poly;
int main()
{
int k1,k2;
poly a[12],b[12],c[30];
int i,j,pos=0;
scanf("%d",&k1);
for(i=0;i<k1;i++){
scanf("%d %lf",&a[i].expon,&a[i].coef);
}
scanf("%d",&k2);
for(i=0;i<k2;i++){
scanf("%d %lf",&b[i].expon,&b[i].coef);
}
for(i=0,j=0;i<k1&&j<k2;){
if(a[i].expon == b[j].expon){
if((a[i].coef + b[j].coef) != 0){
c[pos].expon = a[i].expon;
c[pos].coef = a[i].coef + b[j].coef;
pos++;
}
i++;j++;
}
else if(a[i].expon > b[j].expon){
if(a[i].expon != 0){
c[pos].expon = a[i].expon;
c[pos].coef = a[i].coef;
pos++;
}
i++;
}
else{
if(b[j].expon != 0){
c[pos].expon = b[j].expon;
c[pos].coef = b[j].coef;
pos++;
}
j++;
}
}
for(;i<k1;i++){
if(a[i].coef != 0){
c[pos].expon = a[i].expon;
c[pos].coef = a[i].coef;
pos++;
}
}
for(;j<k2;j++){
if(b[j].coef!=0){
c[pos].expon = b[j].expon;
c[pos].coef = b[j].coef;
pos++;
}
}
printf("%d",pos);
for(i=0;i<pos;i++){
printf(" %d %.1lf",c[i].expon,c[i].coef);
}
printf("n");
}
另外一种方法
#include<stdio.h>
typedef struct polynode{
int expon;
double coef;
}poly;
int k1,k2,cnt=0;
poly a[15],b[15];
double c[1005];
int main()
{
scanf("%d",&k1);
for(int i=0;i<k1;i++)
scanf("%d %lf",&a[i].expon,&a[i].coef);
scanf("%d",&k2);
for(int i=0;i<k2;i++)
scanf("%d %lf",&b[i].expon,&b[i].coef);
for(int i=0;i<k1;i++){
c[a[i].expon] += a[i].coef;
}
for(int i=0;i<k2;i++){
c[b[i].expon] += b[i].coef;
}
for(int i=0;i<1005;i++)
{
if(c[i]!=0)
cnt++;
}
printf("%d",cnt);
for(int i=1000;i>=0;i--)
{
if(c[i]!=0)
printf(" %d %.1lf",i,c[i]);
}
printf("n");
return 0;
}
最后
以上就是长情豌豆为你收集整理的Pat 1002的全部内容,希望文章能够帮你解决Pat 1002所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复