欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

程序员文章站 2022-07-08 16:54:34
...

 

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

#  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;
}

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

# 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个空格分开

输入:

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

输出:

算法笔记第三章练习题_A+B for polynomials,product of polynomials,考试座位号

#  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;
}

 

相关标签: 算法笔记