zoukankan      html  css  js  c++  java
  • 5-2 一元多项式的乘法与加法运算 (20分)

    设计函数分别求两个一元多项式的乘积与和。

    输入格式:

    输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

    输出格式:

    输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0

    输入样例:

    4 3 4 -5 2  6 1  -2 0
    3 5 20  -7 4  3 1
    

    输出样例:

    15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
    5 20 -4 4 -5 2 9 1 -2 0



    --------------------------------------------------------------------------
    个人觉得,对于一元多项式的加法,乘法问题,采用数组存储,难度会降低许多
    --------------------------------------------------------------------------

     1 #include<stdio.h>
     2 
     3 struct Ploy
     4 {
     5     int co;  //系数
     6     int ex;  //指数
     7 }Ploy[1000];
     8 
     9 int main()
    10 {
    11     // 输入
    12     int a, b, A[2005] = {0}, B[1005] = {0};
    13     int temp1, temp2;
    14     int i,j, isFirst = 1, havaoutput = 0;
    15     scanf("%d", &a);
    16     for(i = 0; i < a; i++)
    17     {
    18         scanf("%d %d", &Ploy[i].co, &Ploy[i].ex);
    19         B[Ploy[i].ex] += Ploy[i].co;
    20     }
    21 
    22     scanf("%d", &b);
    23     for(i = 0; i < b; i++)
    24     {
    25         scanf("%d%d", &temp1, &temp2);
    26         B[temp2] += temp1;
    27         for(j = 0; j < a; j++)
    28             A[temp2 + Ploy[j].ex] += temp1 * Ploy[j].co; 
    29     }
    30 
    31     for(i = 2000; i >=0; i--)
    32     {
    33         if(A[i] != 0)
    34         {
    35             if(isFirst == 1)
    36             {
    37                 printf("%d %d", A[i], i);
    38                 isFirst = 0;
    39             }
    40             else
    41             {
    42                 printf(" %d %d", A[i], i);
    43             }
    44             havaoutput = 1;
    45         }
    46     }
    47     if(havaoutput == 0) printf("0 0");
    48     printf("
    ");
    49 
    50     isFirst = 1;
    51     havaoutput = 0;
    52     for(i = 1000; i >= 0; i--)
    53     {
    54         if(B[i] != 0)
    55         {
    56             if(isFirst == 1)
    57             {
    58                 printf("%d %d", B[i], i);
    59                 isFirst = 0;
    60             }
    61             else
    62             {
    63                 printf(" %d %d", B[i], i);
    64             }
    65             havaoutput = 1;
    66         }
    67     }
    68     if(havaoutput == 0) printf("0 0");
    69     printf("
    ");
    70 }
     
     
  • 相关阅读:
    window.fonts
    smpt authentification 配置
    如何从思维上应对
    中文字体 英文字体
    Path Breadcrumbs
    drupal commerce app
    做视频或者什么模块开发之类的
    分页符 箭头 难看
    theme wrapper 例子
    background position 稍微深入
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/7084270.html
Copyright © 2011-2022 走看看