主要思路:
根据猴子移动规则,只需计算其在任意前后两个点之间的移动距离,然后迭代累加即可。注意最后要累加上回到原点的一段距离。
/*---------------------------------------------------------
功能:计算猴子移动路程问题
描述:猴子需从原点(0, 0)开始按输入坐标点的顺序去寻找并吃掉
该位置处的花生,最后需返回原点,计算猴子的移动路程。
输入示例:
4
1 1
1 -1
-1 -1
-1 1
输出示例:
10
-----------------------------------------------------------
Author: Zhang Kaizhou
Date: 2019-3-11 21:55:26
----------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int m, i, xi, yi;
int x = 0, y = 0, path = 0;
scanf("%d", &m);
for(i = 0; i < m; i++){
scanf("%d %d", &xi, &yi);
path += (abs(xi - x) + abs(yi - y)); // 累加路程
x = xi;
y = yi;
}
path += (abs(x - 0) + abs(y - 0)); // 回到初始位置
printf("%d\n", path);
return 0;
}