Python编程题:编程求两点之间的曼哈顿距离?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编程题:编程求两点之间的曼哈顿距离?相关的知识,希望对你有一定的参考价值。
编程求两点之间的曼哈顿距离。
要求:主程序代码如下,实现函数abs()。
01 #主程序
02 x1,y1=eval(input("输入A点坐标,以逗号分隔:"))
03 x2,y2=eval(input("输入B点坐标,以逗号分隔:"))
04 mht=abs(x1-x2)+abs(y1-y2)
提示:给出平面上两个点的坐标,平面上点A(x1,y1)与点B(x2,y2)的曼哈顿距离为:
|x1-x2|+|y1-y2|。
def My_abs(num):
if num < 0:
num *= -1
return num
print(abs(-5))
x1,y1=eval(input("输入A点坐标,以逗号分隔:"))
x2,y2=eval(input("输入B点坐标,以逗号分隔:"))
# 计算曼哈顿距离的函数
def getManhattanDistance(x1, y1, x2, y2):
return My_abs(x1 - x2) + My_abs(y1 - y2)
# 调用并输出计算的曼哈顿距离
print(getManhattanDistance(x1, y1, x2, y2))
abs在Python中有了,然后我就命名成了My_abs。
备注也都打好了。
折柳成荫写的是C,soulofbug写的是python
参考技术A #include<stdio.h>#include<math.h>
int main()
float x1,x2,y1,y2;
printf("请输入二个点的坐标:");
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
printf("二个点的曼哈顿距离是:%f\n",fabs(x1-x2)+fabs(y1-y2));
return 0;
追问
不好意思啊,你这个是C语言的编程,请问可以用Python吗?麻烦了
本回答被提问者采纳 参考技术B 就是让你实现一个ABS而已嘛def abs(x):
return x if x>0 else -x
然后其他自己做了 参考技术C 必要的话,OK!
期末考试——编程题#3:最远距离
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
给定一组点(x,y),求距离最远的两个点之间的距离。
输入
第一行是点数n(n大于等于2)
接着每一行代表一个点,由两个浮点数x y组成。
输出
输出一行是最远两点之间的距离。
使用cout << fixed << setprecision(4) << dis << endl;输出距离值并精确到小数点后4位。
fixed和setprecision是在<iomanip>头文件里定义的格式控制操作符,需要#include <iomanip>.
样例输入
6 34.0 23.0 28.1 21.6 14.7 17.1 17.0 27.2 34.7 67.1 29.3 65.1
样例输出
53.8516
1 #include<iostream> 2 #include<iomanip> 3 #include<cmath> 4 int main() 5 { 6 using namespace std; 7 int num; 8 double x[100], y[100], max = 0; 9 cin >> num; 10 if (num < 2) 11 cout << "error!"; 12 else 13 { 14 15 for (int i = 0; i < num; i++) 16 { 17 cin >> x[i] >> y[i]; 18 } 19 for (int i = 0; i < num - 1; i++) 20 for (int j = i; j < num - 1; j++) 21 { 22 double a = sqrt((x[i] - x[j + 1])*(x[i] - x[j + 1]) + (y[i] - y[j + 1])*(y[i] - y[j + 1])); 23 if (a > max) { 24 max = a; 25 } 26 } 27 cout << fixed << setprecision(4) << max << endl; 28 } 29 return 0; 30 }
以上是关于Python编程题:编程求两点之间的曼哈顿距离?的主要内容,如果未能解决你的问题,请参考以下文章