算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号
程序员文章站
2022-07-08 16:54:34
...
# include <cstdio>
const int max_n = 1111;
double p [max_n] = {0};
int main()
{
int k,n,count = 0;
double a;
scanf("%d",&k);
for (int i = 0;i < k;i++)
{
scanf("%d %lf",&n,&a);
p[n] +=a;
}
scanf("%d",&k);
for (int i = 0;i < k;i++)
{
scanf("%d %lf",&n,&a);
p[n] += a;
}
for (int i = 0;i<max_n;i++)
{
if(p[i] != 0);
{
count ++;
}
}
printf("%d",&count);
for (int i = max_n-1;i>= 0;i--)
{
if (p[i]!= 0)
{
printf("%d %.f",i,p[i]);
}
}
return 0;
}
# include <cstdio>
struct Ploy
{
int exp; //指数
double cof; // 系数
} poly[1001]; //第一个多项式
double ans [2001] ; //存放结果
int main ()
{
int n,m,number = 0;
scanf ("%d",&n); //第一个多项式中非零系数的项数
for (int i = 0;i <n;i++)
{
scanf("%d %lf",&poly[i].exp,&poly[i].cof) ; //第一个多项式的指数和系数
}
scanf ("%d",&m);// 第二个多项式中非零系数的项数
for (int i = 0;i<m;i++)
{
int exp;
double cof;
scanf("%d[ %lf",&exp,&cof); //第二个多项式的指数和系数
for (int j = 0;j < n;j++) //与第一个多项式中的每一项相乘
{
ans[exp+poly[j].exp] += (cof*poly[j].cof);
}
}
for (int i = 0;i <= 2000;i++)
{
if (ans[i] != 0.0)
{
number++ ; //累计非零系数的项数
}
printf("%d",number);
for (int i =2000;i >= 0;i--) //输出
{
if (ans[i] != 0.0)
{
printf("%d %.lf",i ,ans[i]);
}
}
}
return 0;
}
考试座位号题目描述:
每个PAT考生在参加考试时都会被分配两个座位号:一个是试机座位:另一个是考试座 位,正常情况下,考生在入场时先得到试机座位号,入座进入试机状态后,系统会显示该考 生的考试座位号,考试时考生需要换到考试座位就座.但有些考生迟到了,试机已经结束, 他们只能拿卷领到的试机座位号求助于你,从后台査出他们的考试座位号码。
输入格式
第一行给出一个正整数N(N<=1000);随后N行,每行给出一个考生的信息:“准考证号 试机座位号 考试座位号”其中准考证号由14位数字组成,座位从1~N编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
在考生信息之后,给出一个正整数M (<=N),随后一行中给出M个待査询的试机座位号,以空格分隔
输出格式
对应每个需要査询的试机座位号,在一行中输出对应考生的准考证兮和考试座位号,中间用1个空格分开
输入:
输出:
# include <cstdio>
const int maxn = 1001;
struct Student
{
long long id; //准考证号
int examSeat; //考试座位号
} testSeat[maxn]; //以试机座位号作为下标来记录考生
int main()
{
int n,m,seat,examSeat;
long long id;
scanf("%d",&n); //考生人数
for(int i = 0;i <n;i++)
{
scanf("%lld %d %d",&id ,&seat,&examSeat); //准考证号,试机座位号,考试座位号
testSeat[seat].id = id ; //试机座位号为Seat考生的准考证号
testSeat[seat].examSeat = examSeat ; //试机座位号为seat的考生的考试号
}
scanf("%d",&m); //查询个数
for(int i = 0;i < m;i++)
{
scanf("%d",&seat); //与查询的试机座位号,以此为下标直接查找考生
printf("%lld %d\n",testSeat[seat].id,testSeat[seat].examSeat);
}
return 0;
}
上一篇: 奸商的笑话