叉积的基础应用。
今天花了半个小时终于分清楚点积叉积了。。。。
没坑点。。。水。。
13哥的机器人 | ||||||
| ||||||
Description | ||||||
13哥酷爱学习,13哥经过短暂学习后设计出来一机器人。13哥的机器人唯一缺陷是当遇到转弯时,就不知道该怎么走了,但是经过13哥的努力,这个机器人可以根据声音来转动方向,在没有声音的情况下沿直线行走。所以只能麻烦13哥在机器人遇到转弯时候,告诉机器人向左还是向右。 | ||||||
Input | ||||||
有多组测试数据,第一行输入整数n,表示n个点(n>=3),接下来的n行每行输入一对数字x,y表示平面坐标系线路上的转折点(第一行是起点,最后一行是结束点)。当n为0时结束。 | ||||||
Output | ||||||
对于每组输入数据单独一行,如果机器人往左转输出L,右则输出R | ||||||
Sample Input | ||||||
5 0 0 0 1 -1 1 -1 0 0 0 | ||||||
Sample Output | ||||||
LLL | ||||||
Author | ||||||
鲁学涛 |
Submit | Statistic | Discuss | Sharedcodes |
#include<stdio.h>
#include<math.h>
int ch_ji(int x1,int y1,int x2,int y2,int x3,int y3)
{
return (x2-x1)*(y3-y1)-(y2-y1)*(x3-x1);
}
int main()
{
int n;
while(scanf("%d",&n)==1&&n)
{
int x[10003],y[100003];
for(int i=0; i<n; i++)
{
scanf("%d%d",&x[i],&y[i]);
}
int sum=0;
char a[1000003];
int step=0;
for(int i=2; i<n; i++)
{
int t=ch_ji(x[i-2],y[i-2],x[i-1],y[i-1],x[i],y[i]);
if(t>0)
{
a[step++]='L';
}
else if(t<0)
{
a[step++]='R';
}
}
a[step]='\0';
printf("%s\n",a);
}
}