hdu1.2.1 Biker's Trip Odometer
2014-08-16 10:23
176 查看
[align=left]Problem Description[/align] 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. |
[align=left]Input[/align] 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). |
[align=left]Output[/align] 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. |
[align=left]Sample Input[/align]26 1000 5 27.25 873234 3000 26 0 1000 |
[align=left]Sample Output[/align]Trip #1: 1.29 928.20 Trip #2: 1179.86 1415.84 |
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.OutputStreamWriter;
import java.io.StreamTokenizer;
public class Main implements Runnable
{
private static final boolean DEBUG = false;
private static final double PI = 3.1415927;
private BufferedReader cin;
private PrintWriter cout;
private StreamTokenizer tokenizer;
private double diameter;
private int revolutions;
private double time;
private void init()
{
try {
if (DEBUG) {
cin = new BufferedReader(new InputStreamReader(
new FileInputStream("d:\\OJ\\uva_in.txt")));
} else {
cin = new BufferedReader(new InputStreamReader(System.in));
}
cout = new PrintWriter(new OutputStreamWriter(System.out));
tokenizer = new StreamTokenizer(cin);
} catch (Exception e) {
e.printStackTrace();
}
}
private String next()
{
try {
tokenizer.nextToken();
if (tokenizer.ttype == StreamTokenizer.TT_EOF)
return null;
else if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
return String.valueOf(tokenizer.nval);
} else
return tokenizer.sval;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private boolean input()
{
diameter = Double.parseDouble(next());
revolutions = (int)Double.parseDouble(next());
time = Double.parseDouble(next());
if (revolutions == 0) return false;
return true;
}
private void solve(int cas)
{
cout.print("Trip #" + cas + ": ");
double distance = PI * diameter * revolutions / 5280 / 12;
double speed = distance / time * 3600;
cout.printf("%.2f %.2f", distance, speed);
cout.println();
cout.flush();
}
public void run()
{
init();
int t = 1;
while (input()) {
solve(t++);
}
}
public static void main(String[] args)
{
new Thread(new Main()).start();
}
}
相关文章推荐
- Biker's Trip Odometer
- hdu 1038 Biker's Trip Odometer(简单计算题)
- 杭电acm Biker's Trip Odometer
- Biker's Trip Odometer(求平均速度)
- HDOJ1038 Biker's Trip Odometer
- ZOJ 1813 Biker's Trip Odometer
- Biker's Trip Odometer
- Biker's Trip Odometer
- #1665:Biker's Trip Odometer--scanf数据类型读取
- 杭电ACM OJ 1038 Biker's Trip Odometer 水(只是题目意思有点难理解) java保留两位小数
- HDU 1038 Biker's Trip Odometer
- hdu 1038(ACM steps 1.2.1)Biker's Trip Odometer
- Biker's Trip Odometer
- hdoj 1037 Biker's trip odometer (巨水)
- 1813_Biker's Trip Odometer
- Biker's Trip Odometer
- TOJ 2084.Biker's Trip Odometer
- HOJ 1271 Biker's Trip Odometer
- hdu 1038 Biker's Trip Odometer(水题)
- hdu 1038 Biker's Trip Odometer(水题)