📄 多项式环积实现.cpp
字号:
/*例如: a=2+X+3X^2
b=1+2X+X^2
a*b=2+X+3X^2+4X+2X^2+6+2X^2+1+3X
=9+8X+7X^2
*/
#include "stdio.h"
#include "stdlib.h"
//-----------输出数组长度----------
int input()
{
int nSize;
//printf("输入一个数:");
scanf("%d",&nSize);
return nSize;
}
//-----------输入数组----------
int *arith(int nSize)
{
int *array;
array = (int*)malloc(nSize*sizeof(int));
for(int i = 0;i<nSize;i++)
{
printf("输入%d个数组元素:",i);
scanf("%d",&array[i]);
}
return array;
}
//-----------输出----------
void output(int *array,int nSize)
{
for(int i = 0;i<nSize;i++)
{
printf("%d\t",array[i]);
}
printf("\n");
free(array);
}
//-----------两个数组相乘----------(算法1):
int *arraymultiply(int *p,int N,int *q,int M)
{
int k;
int *array;
array = (int *)malloc(N*sizeof(int));
for(int i=0;i<M;i++)
{
k=i+1;
array[i]=0;
for(int j=0;j<N;j++)
{
k--;
array[i]=array[i]+p[k]*q[j];
if(k==0)
{
if(M>N)
k=M;
else
k=N;
}
}
}
return array;
}
//------------------主函数---------
void main()
{
int n,m;
int *a,*b;
int * arithmetic1;
//-----------------------------
printf("输入a数组:\n");
printf("输入a数组的长度:");
n = input(); //调用长度函数
printf("\n");
a = arith(n); //调用输入函数
printf("\n");
//-----------------------------
printf("输入b数组:\n");
printf("输入b数组的长度:");
m = input(); //调用长度函数
printf("\n");
b = arith(m); //调用输入函数
printf("\n");
//------------------------------
arithmetic1 = arraymultiply(a,n,b,m);
printf("输入的a数组:\n");
output(a,n);//调用输出函数
printf("输入的b数组:\n");
output(b,m);
printf("输出的结果如下:\n");
output(arithmetic1,n);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -