SGU 146.The Runner

本文介绍了一个关于计算在圆周上运动者的离起点圆弧距离的问题,通过避免浮点数处理,采用整数运算来简化算法实现。详细解释了输入参数的转换方法以及最终结果的输出格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间限制: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);
}

  

转载于:https://www.cnblogs.com/keam37/p/3841388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值