
C++编程求解方程!!
用C++编程求满足x*x+y*y+z*z=55*55(x>y>z,x,y,z为整数)的所有解中,|x+y+z|的最小值,以及对应的x,y,z的值。谢谢!麻烦给个具体代码好...
用C++编程求满足x*x+y*y+z*z=55*55 (x>y>z,x,y,z为整数)的所有解中,|x+y+z|的最小值,以及对应的x,y,z的值。谢谢!
麻烦给个具体代码好不好?因为还要注意一些细节问题,谢谢啦~ 展开
麻烦给个具体代码好不好?因为还要注意一些细节问题,谢谢啦~ 展开
3个回答
展开全部
//用C++编程求满足x*x+y*y+z*z=55*55 (x>y>z,x,y,z为整数)的所有解中,|x+y+z|的最小值,以及对应的x,y,z的值。谢谢!
#include <iostream>
#include<math.h>
using namespace std;
void main()
{
int x,y,z,min=150;
int a,b,c;
for(x=-55;x<55;x++)
for(y=-55;y<55;y++)
for(z=-55;z<55;z++)
{
if ((x*x+y*y+z*z==55*55)&&(x>y)&&(y>z))
{
if(fabs(x+y+z)<min)//求绝对值
{
min=fabs(x+y+z);
a=x;
b=y;
c=z;
}
}
}
cout<<"|x+y+z|的最小值为:"<<min<<endl;
cout<<a<<" "<<b<<" "<<c<<endl;
}
#include <iostream>
#include<math.h>
using namespace std;
void main()
{
int x,y,z,min=150;
int a,b,c;
for(x=-55;x<55;x++)
for(y=-55;y<55;y++)
for(z=-55;z<55;z++)
{
if ((x*x+y*y+z*z==55*55)&&(x>y)&&(y>z))
{
if(fabs(x+y+z)<min)//求绝对值
{
min=fabs(x+y+z);
a=x;
b=y;
c=z;
}
}
}
cout<<"|x+y+z|的最小值为:"<<min<<endl;
cout<<a<<" "<<b<<" "<<c<<endl;
}
追问
可以解释一下为什么min初值是150吗?
追答
min是我初始化|X+Y+Z|的一个值,你想啊 X,Y,Z不可能每个都大于55吧,所以我应该把它设置为165, 哦 ,我算错了。 没事,然后和满足方程的值比较,后面满足方程的值肯定比我初始化的值小,所以 我就将满足方程的值而且比min小的值重新赋给min,直到循环结束后,min的值肯定最小
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询