Sicily 1051 Biker’s Trip Odomete

1051. Biker's Trip Odomete

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

Most bicycle speedometers work by using a Hall Effect sensor fastened to the front fork of the bicycle. A magnet is attached to one of the spokes on the front wheel so that it will line up with the Hall Effect switch once per revolution of the wheel. The speedometer monitors the sensor to count wheel revolutions. If the diameter of the wheel is known, the distance traveled can be easily be calculated if you know how many revolutions the wheel has made. In addition, if the time it takes to complete the revolutions is known, the average speed can also be calculated.

For this problem, you will write a program to determine the total distance traveled (in miles) and the average speed (in Miles Per Hour) given the wheel diameter, the number of revolutions and the total time of the trip. You can assume that the front wheel never leaves the ground, and there is no slipping or skidding.

 

Input

 

Input consists of multiple datasets, one per line, of the form:

diameter revolutions time

The diameter is expressed in inches as a floating point value. The revolutions is an integer value. The time is expressed in seconds as a floating point value. Input ends when the value of revolutions is 0 (zero).

 

Output

 

For each data set, print:

Trip #N: distance MPH

Of course N should be replaced by the data set number, distance by the total distance in miles (accurate to 2 decimal places) and MPH by the speed in miles per hour (accurate to 2 decimal places). Your program should not generate any output for the ending case when revolutions is 0.

Constants

For p use the value: 3.1415927.
There are 5280 feet in a mile.
There are 12 inches in a foot.
There are 60 minutes in an hour.
There are 60 seconds in a minute.
There are 201.168 meters in a furlong.

 

Sample Input

26 1000 5
27.25 873234 3000
26 0 1000

Sample Output

Trip #1: 1.29 928.20
Trip #2: 1179.86 1415.84

 

这道题的思路非常简单,即根据输入的直径、圈数、时间来计算路程和平均时间,按照已按公式计算即可,需要注意的是不要搞错单位之间的转换。

首先是距离,单位是mile,所以要把直径*π*圈数的结果转换为mile表示,直径*π*圈数的结果使用inch表示,根据其数量关系,我们可以得到最终的路程为:直径*π*圈数/(12*5280);

然后是平均速度,用路程除以总时间即可,不过需要注意的是这里的速度是每小时的速度,而题目的时间是以秒的形式给出的,所以要进行转换t/3600,最终结果为直径*π*圈数/(12*5280)/(t/3600);

然后需要注意一点,当圈数为0时直接结束输入;

最后按照题目要求进行输出即可。

代码如下:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    double dia,rev,t;
    int counter=1;
    while(cin>>dia>>rev>>t)
    {
        if(rev==0) break;
        cout<<"Trip #"<<counter<<": ";
        cout<<fixed<<setprecision(2)<<(dia*3.1415927*rev)/(12*5280);
        cout<<" ";
        cout<<fixed<<setprecision(2)<<(dia*3.1415927*rev)/(12*5280)/(t/3600)<<endl;
        counter=counter+1;
    }


    return 0;
}                                 

  

 

posted @ 2016-03-23 00:26  日天大哥哥  阅读(351)  评论(0编辑  收藏  举报