如果用c编程解一个多元高次方程?
用C语言编程解下面这样一个方程:
a +b +c=1
a*x +b*y +c*z=m1;
a*x*x +b*y*y +c*z*z=m2;
a*x*x*x +b*y*y*y +c*z*z*z=m3;
a*x*x*x*x +b*y*y*y*y +c*z*z*z*z=m4;
a*x*x*x*x*x +b*y*y*y*y*y +c*z*z*z*z*z=m5;
其中,m1、m2、m3、m4、m5是已知的,a、b、c、x、y、z是要求解的,不知道用c怎么求解,请高手指教。
参考答案://使用编译器 visual c++6.0
/*用C语言编程解下面这样一个方程:
a +b +c=1
a*x +b*y +c*z=m1;
a*x*x +b*y*y +c*z*z=m2;
a*x*x*x +b*y*y*y +c*z*z*z=m3;
a*x*x*x*x +b*y*y*y*y +c*z*z*z*z=m4;
a*x*x*x*x*x +b*y*y*y*y*y +c*z*z*z*z*z=m5;
其中,m1、m2、m3、m4、m5是已知的,a、b、c、x、y、z是要求解的,不知道用c怎么求解,请高手指教。
*/
#include <iostream.h>
void main(void)
{
long int m1,m2,m3,m4,m5;//装已知的数
long int *m[5]={&m1,&m2,&m3,&m4,&m5};
long int a,b,c,x,y,z;
a=b=c=x=y=z=0;//装未知的数并初始化
for(int p=0;p<5;p++)
{
cout<<"请输入已知数"<<p<<"\n";
cin>>*(m[p]);
}//输入 M1 M2 M3 M4 M5
int luoji=1//逻辑判断装置
//a、b、c、x、y、z
for(;luoji;a++)
{
for(;luoji;b++)
{
for(;luoji;c++)
{
for(;luoji;x++)
{
for(;luoji;y++)
{
for(;luoji;z++)
{
if(
luoji=! (
(a+b+c==1)&&
(a*x+b*y+c*z==m1)&&
(a*x*x+b*y*y+c*z*z==m2)&&
(a*x*x*x+b*y*y*y+c*z*z*z==m3)&&
(a*x*x*x*x+b*y*y*y*y+c*z*z*z*z==m4)&&
(a*x*x*x*x*x+b*y*y*y*y*y+c*z*z*z*z*z==m5)
)
)
{
cout<<"正确答案如下:"<<a<<"\n"<<b<<"\n"<<c<<"\n"<<x<<"\n"<<y<<"\n"<<z<<"\n";
cout<<"程序运行完毕";
}
}
}
}
}
}
}
}
参考资料:用穷举法写的,少写了一个;号,死活找不到。