C++ 长方体中的蚂蚁寻找最短路径:给出长方体的长度、宽度和高度。输出应以浮点形式显示最短距离
一只蚂蚁看见一盒糖。它爬到箱子的上角进入里面。不幸的是,盒子的下角只有几块方糖在蚂蚁对面。编写一个程序,帮助蚂蚁找到到达方糖的最短路径 输入和输出格式: 输入由三个整数组成,分别对应长方体的长度、宽度和高度。 输出应以浮点形式显示最短距离。精确到小数点后两位 输入和输出示例: 输入长度 5. 输入宽度 6. 输入高度 7. 最短距离为14.81 我用的公式 (1)平方根[(a+b)^2+c^2](2)平方根[(b+c)^2+a^2](3)平方根[(a+c)^2+b^2]之间的最小值 对于相同的输入,我得到的答案是13.42 我哪里做错了C++ 长方体中的蚂蚁寻找最短路径:给出长方体的长度、宽度和高度。输出应以浮点形式显示最短距离,c++,c,algorithm,C++,C,Algorithm,一只蚂蚁看见一盒糖。它爬到箱子的上角进入里面。不幸的是,盒子的下角只有几块方糖在蚂蚁对面。编写一个程序,帮助蚂蚁找到到达方糖的最短路径 输入和输出格式: 输入由三个整数组成,分别对应长方体的长度、宽度和高度。 输出应以浮点形式显示最短距离。精确到小数点后两位 输入和输出示例: 输入长度 5. 输入宽度 6. 输入高度 7. 最短距离为14.81 我用的公式 (1)平方根[(a+b)^2+c^2](2)平方根[(b+c)^2+a^2](3)平方根[(a+c)^2+b^2]之间的最小值 对于相同的输
s1=x+y;
s2=y+z;
s3=x+z;
s1sq=s1*s1;
s2sq=s2*s2;
s3sq=s3*s3;
x2=pow(x,2.0);
y2=pow(y,2.0);
z2=pow(z,2.0);
full1=s1sq+z2;
full2=s2sq+x2;
full3=s3sq+y2;
sq1=sqrt(full1);
sq2=sqrt(full2);
sq3=sqrt(full3);
min=sq1;
if(sq1<sq2 && s1<sq3)
min=sq1;
if(sq2<sq3 && sq2<sq1)
min=sq2;
else min=sq3;
Printf("%.2f",min);
return 0;
s1=x+y;
s2=y+z;
s3=x+z;
s1sq=s1*s1;
s2sq=s2*s2;
s3sq=s3*s3;
x2=功率(x,2.0);
y2=功率(y,2.0);
z2=功率(z,2.0);
full1=s1sq+z2;
full2=s2sq+x2;
full3=s3sq+y2;
sq1=sqrt(完整1);
sq2=sqrt(满2);
sq3=sqrt(满3);
min=sq1;
如果(sq1你在公式中犯了错误。从你的角度来看,你应该写:
(a + sqrt(b^2 + c^2))
(b + sqrt(a^2 + c^2))
(c + sqrt(a^2 + b^2)).
即使这样,你也不会得到最短的距离。举个例子,
假设立方体是1x1x1的单位,边沿x、y和z轴。为了让蚂蚁从(0,0,0)到(1,1,1),它可以从
(0,0,0) -> (0,1,1) -> (1,1,1)
或
(0,0,0)->(0,0.5,0.5)->(1,1,1)
第二条路径显然是较短的路径。如果他们希望我们提供帮助,OP应该会显示出一些努力。请告诉我们您已经尝试了什么,失败的原因以及我们可能能够提供帮助。:-)我已经添加了代码我编写了什么类型的full1>@user3352106