• PAT甲级1009水题飘过


    题目分析:简单的多项式的模拟乘法,你可以假设未知数为x,exp为x的指数,coe为x的系数,则很容易就把答案推算出来,注意答案是从指数的高往低输出,同时要注意的是这是多项式的乘法,虽然指数的范围只有0~1000,但是乘法结果的指数范围为0~2000,注意数组定义的范围,开小了会产生段错误(下标越界,访问了不该访问的内存)

     1 #include<iostream>
     2 using namespace std;
     3 
     4 struct Node{
     5     int exp;        //指数 
     6     double coe;        //系数 
     7 }k[2005], a[15], b[15];        //对于k数组来说下标即对应指数 所以exp对于k数组来说其实是多余的 
     8 
     9 //初始化结构体数组 
    10 void init(){
    11     for(int i = 1; i <= 10; i++){
    12         a[i].exp = 0;
    13         a[i].coe = 0;
    14         b[i].exp = 0;
    15         b[i].coe = 0;
    16     } 
    17     for(int i = 0; i <= 2000; i++){
    18         k[i].exp = 0;
    19         k[i].coe = 0;
    20     }
    21 }
    22 
    23 int main(){
    24     int n1, n2;
    25     while(scanf("%d", &n1) != EOF){
    26         init();
    27         for(int i = 1; i <= n1; i++){
    28             scanf("%d%lf", &a[i].exp, &a[i].coe);
    29         }
    30         scanf("%d", &n2);
    31         for(int i = 1; i <= n2; i++){
    32             scanf("%d%lf", &b[i].exp, &b[i].coe);
    33         }
    34         for(int i = 1; i <= n1; i++){
    35             for(int j = 1; j <= n2; j++){
    36                 //对a数组中的每一位都与b数组的每一位相乘,将结果存储到k数组中
    37                 //得到指数 
    38                 int exp = a[i].exp + b[j].exp;
    39                 //得到系数
    40                 double coe = a[i].coe * b[j].coe;
    41                 k[exp].coe += coe; 
    42             }
    43         }
    44         //统计一遍有多少项是有意义的(系数不为0)
    45         int num = 0;
    46         for(int i = 2000; i >= 0; i--){
    47             if(k[i].coe != 0) num++;
    48         } 
    49         printf("%d", num);
    50         //从高位到低位输出都有的系数不为0的情况下的多项式的每一项
    51         for(int i = 2000; i >= 0; i--){
    52             if(k[i].coe != 0){
    53                 printf(" %d %0.1lf", i, k[i].coe);
    54             }
    55         } 
    56         printf("
    ");
    57     }
    58     return 0;
    59 } 
  • 相关阅读:
    python使用thrift访问操作hbase
    js打开新页面
    设计模式
    c# dotfuscator 混淆后无法使用
    SQL server清空数据库日志脚本
    SQlserver 行转列
    SQLServer 脚本测试
    C# HttpWebRequest与HttpWebResponse详解
    反射
    SQl server master
  • 原文地址:https://www.cnblogs.com/findview/p/11646645.html
Copyright © 2020-2023  润新知