求距离
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
题目很简单,有两个人a和b,这两个人都面朝北站立。对于每一个人,都有四步操作,令这个人按给定的方向去移动,用W、E、S、N分别代表向西、向东、向南、向北。每次都移动一步,求两个人移动后的距离。例如,对a进行操作:E E E E,经过移动后a的位置为距离原点位置4步的位置。
-
输入
-
输入有多组测试数据。
每组测试数据有两行。
第一行有四个字符代表对第一个人的操作,每两个字符之间用空格隔开。
第二行代表对第二个人的操作。
输出
每组测试数据输出两人的距离,保留两位小数。
#include <iostream> #include <stdio.h> #include <cmath> using namespace std; int na[4],nb[4]; void fun(char* c,int* x) { for(int i=0;i<4;i++) switch(c[i]) { case 'E': x[0]++; break; case 'W': x[1]++; break; case 'N': x[2]++; break; case 'S': x[3]++; break; } } int main() { char a[4],b[4]; int xa=0,xb=0,ya=0,yb=0; while(cin>>a[0]) { for(int i=1;i<4;i++) cin>>a[i]; for(int i=0;i<4;i++) { na[i]=0;nb[i]=0; cin>>b[i]; } fun(a,na);fun(b,nb); xa = na[2] - na[3]; xb = nb[2] - nb[3]; ya = na[0] - na[1]; yb = nb[0] - nb[1]; printf("%.2f\n",sqrt((xa - xb)*(xa - xb)+(ya-yb)*(ya-yb))); } return 0; }
-
输入有多组测试数据。