【问题描述】两汽车相距100km,汽车1速度20kmh,汽车2速度30kmh,两车相向而行,求多长时间相遇。
100/(20+30)
#include
using namespace std;
int main()
{
int v1=20,v2=30,t=0;
t=(100/50);
cout <<t;
return 0;
}
编程题和数学题的解题思路是不相同的。
编程题考的是离散思维,数学题考的是抽象思维。
这道题,用编程实现的话,应该是一个循环结构。
时间精度,如果是秒的话。根据两车的速速,可以换算成每秒多少米。
然后,构建一个循环结构,每次循环,两车都会走过每秒移动的距离。
将两车每秒移动的距离累加(每个车各自累加),如果两辆车的移动距离之和大于等于一百千米则记录时间秒数跳出循环。
最终,得出所需时间,单位是秒,也就是循环次数。
#include<iostream>
using namespace std;
class Car{
public:
void SetSpeed(float speed);
float GetSpeed();
private:
float speed;
};
class Distance{
public:
void Setdistance(float distance);
float Getdistance();
void meet(Car car1, Car car2, float &meet_time);
private:
float distance;
};
int main(){
Car car1, car2;
Distance dis;
float meet_time;
car1.SetSpeed(20);
car2.SetSpeed(30);
dis.Setdistance(100);
dis.meet(car1, car2, meet_time);
cout << "两辆汽车" << meet_time << "分钟后相遇" << endl;
return 0;
}
void Car::SetSpeed(float speed){
this->speed = speed;
}
float Car::GetSpeed(){
return speed;
}
void Distance::Setdistance(float distance){
this->distance = distance;
}
float Distance::Getdistance(){
return distance;
}
void Distance::meet(Car car1, Car car2, float &meet_time){
meet_time = distance / (car1.GetSpeed() + car2.GetSpeed());
}