题目描述
两辆汽车在同一地点,同时,沿同一方向前进。
一辆车的速度为60 km/h,另一辆车的速度为90 km/h。
显然,快车与慢车的距离会不断拉开,每过一个小时(60分钟),两车的距离就拉开30公里。
现在,告诉你两车之间的距离为L公里,请你求出两车已经行驶了多长时间?
输入格式
输入包含一个整数L,表示两车之间的距离。
输出格式
输出格式为“X minutos”,其中X为已经行驶的时间,单位为分钟。
数据范围
1≤L≤10的9次方
输入样例
30
输出样例
60 minutos
#include<bits/stdc++.h>
using namespace std;
int main()
{
int l,x;
cin>>l;
x=l/30.0*60;
cout<<x<<" minutos";
return 0;
}
看完y总讲解后
#include<iostream>
using namespace std;
int main()
{
int l;
cin>>l;
cout<<l*2<<" minutos";
return 0;
}
所以碰到类似的题要找找规律,尽量不用除运算就不用。
拓展:讲解的时候有人提出l/0.5运算出错
这是为什么呢?
因为0.5是float型的浮点数,所以l/0.5运算的结果也是浮点数,而float型浮点数的有效位数是6-7位,又因为数据范围小于10的9次方,所以超过了float型的范围,所以就会出错。
那么要怎么解决呢:
#include<iostream>
using namespace std;
int main()
{
int l;
cin>>l;
cout<<(int)(double)(l/0.5)<<" minutos"<<endl;
return 0;
}
即先强制转换成double型,再强制转换成int型。