问题描述:
在二维直角坐标系内,存在n堆花生,一只猴子位于原点,猴子要拿到所有的花生,每一只能想x或y轴移动一步,求猴子走过的路程。
输入示例:
4
1 1
1 -1
-1 -1
-1 1
输出示例:
10
代码:
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
typedef struct pos{//定义位置结构体
int x;
int y;
}pos;
struct pos sta={0,0};//定义原点
//sta.x=0;
//sta.y=0;
int distwo(pos p1,pos p2){//求两点之间的距离
return(abs(p2.x-p1.x)+abs(p2.y-p1.y));
}
int dis(pos p[],int n){//求猴子走过的路程
int distance=0;
distance=distance+distwo(sta,p[0]);//原点到第一个点的距离
for(int i=0;i<n-1;i++){
distance=distance+distwo(p[i],p[i+1]);//中间走过的距离
}
distance=distance+distwo(p[n-1],sta);//最后一个点回到原点的距离
return distance;
}
int main()
{int num;
scanf("%d",&num);
pos p[100];
for(int i=0;i<num;i++){
scanf("%d %d",&p[i].x,&p[i].y);
getchar();
}
int final=dis(p,num);
printf("%d",final);
return 0;
}