欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

4.9. 相等的多项式

发布时间:2023/12/14 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 4.9. 相等的多项式 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

问题描述

小明现在在学习多项式的展开:就是把一个形如(x+a1) (x+a2) ... (x+an)展开成如下形式:xn + b1xn-1 + b2xn-2 + ... + bn-1x + bn比如 (x+1)(x+2=x2 + 3x + 2(x+1)3 = x3 +3x2 +3x + 1小明做了很多练习,但是不知道对错,现在请求你的帮助,判断小明的展开式是否正确。

输入格式

有多组测试数据。每组测试数据有三行,第一行是一个正整数N,表示多项式最高指数。N=0表示输入结束,并且不需要处理。第二行N个整数ai,用空格隔开,i=1...,N(-100≤ai≤100)第三行N个整数bi,用空格隔开,i=1...,N,(-109≤bi≤109)40%的测试数据 1 ≤ N < 530%的测试数据 5 ≤ N < 1020%的测试数据10 ≤ N < 1510%的测试数据 15 ≤N≤ 20

输出格式

对于每组测试数据,输出一行一个字符‘Y'如果展开式是正确的,输出‘N’如果展开式错误。

样例输入

2 1 2 3 2 3 1 1 1 3 3 1 4 0 0 0 1 0 0 0 1 0

样例输出

Y Y N #include <iostream> using namespace std; int main(){int n;while(cin>>n&&n!=0){int a[n],b[n+1],c[n+1];//展开式包含常数项有n+1个系数 for(int i=0;i<n;i++) cin>>a[i];b[n]=1;//展开式中最高项系数为1 for(int i=n-1;i>=0;i--) cin>>b[i];c[0]=a[0];c[1]=1;// for(int i=2;i<=n;i++){for(int j=i;j>=0;j--){if(j==i) c[j]=1;//局部最高项else if(j==0) c[j]*=a[i-1];//常数项相乘 else c[j]=c[j]*a[i-1]+c[j-1]; }}int flag=0;for(int i=0;i<=n;i++){if(b[i]!=c[i]){cout<<"N"<<endl;flag=1;break;}}if(flag==0)cout<<"Y"<<endl;} }

总结

以上是生活随笔为你收集整理的4.9. 相等的多项式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。