[PAT解题报告] Product of Polynomials

这个题和1002类似,1002是多项式加法,这个是多项式乘法。输入输出格式完全一样,数据范围也一样。我还是同样的建议:用数组存多项式的系数,而不要用链表——因为链表容易错。不过要注意两个1000次的多项式相乘,结果可能到2000次——注意数组别开小了。还有就是注意0的判断,这一点和1002一样。相乘采取的就是两重循环。 c[i + j] += a[i] * b[j]这样了。

代码:
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>

using namespace std;

const double eps = 1.e-8;

double a[1024],b[1024],c[2048];

int main() {
int n;
    for (scanf("%d",&n);n;--n) {
        int x;
        scanf("%d",&x);
        scanf("%lf",a + x);
    }
    for (scanf("%d",&n);n;--n) {
        int x;
            scanf("%d",&x);
            scanf("%lf",b + x);
        }
    for (int i = 0; i <= 1000; ++i) {
        for (int j = 0; j <= 1000; ++j) {
            c[i + j] += a[i] * b[j];
        }
    }
    int num = 0;
    for (int i = 2000; i >= 0; --i) {
        if (fabs(c[i]) >= eps) {
            ++num;
        }
    }
    printf("%d",num);
    for (int i = 2000; i >= 0; --i) {
        if (fabs(c[i]) >= eps) {
            printf(" %d %.1lf",i,c[i]);
        }
    }
    puts("");
    return 0;
}    

原题链接: http://www.patest.cn/contests/pat-a-practise/1009



全部评论

相关推荐

头像 会员标识
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务