程序设计——week13限时训练

本次题目都很简单,只是简单记一下我翻车的题目

题目描述

在另一个位面,世界末日发生了。东东作为诺亚方舟的船长,他现在从月球开始启动诺亚方舟去其他星球营救民众。东东从若干星球将人运回大本营,星球的数目以及每个星球的坐标和人数都将由输入决定,东东忙着开船,需要你帮忙求出所有人都到达月球并登陆所用的时间。在直角坐标系的原点是月球,诺亚方舟每次从大本营出发,救了人之后将人送回月球。坐标系中的点代表某个星球。每个屋顶由其位置坐标和其上的人数表示。
诺亚方舟每次从大本营出发,以速度 50 50 50 km/s驶向下一个星球。达到一个星球后,救下其上的所有人,每人上船 1 1 1 s。然后船原路返回,回到月球,每人下船 0.5 0.5 0.5 s。假设原点与任意一个星球的连线不穿过其它星球。
输入格式:
第一行,一个整数,表示星球数1<=n<=100。
接下来依次有 n行输入,每一行前两个实数表示星球相对于月球的平面坐标位置 (x_i,y_i)(单位是km)、然后一个表示人数的整数 r_i,数之间以一个空格分开。0<=x_i,y_i<=100;
输出格式
一行,救援需要的总时间,精确到秒 (向上取整)。
Sample Input
1
30 40 3

Sample Output
7

代码实现

#include<cstdio>
#include<cmath>
using namespace std;

int main(){
	int n,p;
	double tm=0.,x,y;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		int p;
		scanf("%lf%lf%d",&x,&y,&p);
		tm+=sqrt(x*x+y*y)/25.0+p*1.5;
	}
	int res=ceil(tm);
	printf("%d",res);
	return 0;
}

题后反思

记录时间的变量tm要是double,如果定义为int型想着对时间累加过程中就直接调用ceil求出每一次累加的向上取整的值,这样是不对的!正确思路应该是求出double型的最终值,在最后一步进行转换!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值