ZOJ Problem Set - 1394 Polar Explorer

时间:2020-12-24 10:12:05

这道题目还是简单的,但是自己WA了好几次,总结下:

1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结

题目要求输入的格式:

START

X Y Z

END

这算做一个data set,这样反复,直到遇到ENDINPUT。我们可以先吸纳一个字符串判断其是否为ENDINPUT,若不是进入,获得XYZ后,吸纳END,再进行输出结果

2.注意题目是一个圆周,所以始终用锐角进行计算,即z=360-z;

3.知识点的误区:浮点数截断

double data;

printf("%d",int(data));             //强制类型转换后输出

printf("%.0lf",data);                //直接舍弃小数位

这两个是不一样的,为什么暂不知,在论坛提问中。。。

#include <stdio.h>
#include <math.h>
#include <string.h> #define pi 3.14159 int main()
{
char str[]; while(scanf("%s",str)!=EOF&&strcmp(str,"ENDOFINPUT"))
{
int x,y,z;
double dis,gal; scanf("%d%d%d",&x,&y,&z);
if(z>)
z=-z;
dis=*pi*x*(double(z)/360.0)*;
gal=y*5.0;
scanf("%s",str); //把END吸收掉
if(dis<=gal)
{
printf("YES %d\n",int((gal-dis)/5.0));
}
else
{
printf("NO %d\n",(int)gal);
} } return ;
}