SGU 146.The Runner
时间限制:0.25s
空间限制:4M
题意:
一个人在一个周长为L的圆上跑,每个时间段(Ti)的速度(Vi)不一样,问最后他离起点的圆弧距离,周长是个有四位小数的浮点数,其它全是整数。
Solution :
在遇到浮点数的时候,能避免处理就尽量避免处理。
这里只要将浮点数乘上10000,即可当成整数处理。最后再除以10000,输出就好。
代码:
#include<cstdio> #include<cmath> typedef long long LL; const int E=10000; LL len,v,t,sum; double answer,l; int n; int main(){ int i; scanf("%lf %d",&l,&n); len=round(l*E); for(i=1;i<=n;++i){ scanf("%lld %lld",&v,&t); sum+=v*t*E; sum%=len; } answer=(double)sum; answer/=E; if(l-answer<answer)answer=l-answer; printf("%.4lf",answer); }