当前位置:
首页 >
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 < 5;30%的测试数据 5 ≤ N < 10;20%的测试数据10 ≤ N < 15;10%的测试数据 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. 相等的多项式的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: UAP项目创建
- 下一篇: 【人才盘点九宫格】你还不来学一学人才九宫