问题描述
从初中物理易知,一个物体从高处落下符合公式s=(g×t2)÷2,其中s为下落距离,g为重力加速度,这里取g=9.8,t为下落的时间。这里我们不考虑所有阻力。
一个同学爬到理科大楼的某一层向外下扔了一个苹果(水平扔出),人的身高为1.75米。你现在需要计算苹果从扔出到落地的时间。
理科大楼有17层,第一和第二层高为5米,其它各层高3米。一个人从第三层扔东西,那么高度应该是第一层加上第二层的高度,再加上人的身高,总共11.75米。
输入描述
本题有多组测试数据。
每组测试数据占一行,含一个整数n,表示从第几层扔下。( 1 ≤ n ≤ 17 )
如果n=0,则输入结束。
输出描述
每组测试数据输出一行。
每行输出一个浮点数,保留3位小数(要四舍五入),表示落到地面所需要的时间。
样例输入
3 0
样例输出
1.549
来源
{NOJ}, 2005计算机系程序设计竞赛 热身赛
#include <stdio.h>
#include <math.h>
int main() {
int N[17];
float t, g = 9.8, h;
scanf("%d", &N[0]);
for (int i = 0; N[i] != 0; i++) {
scanf("%d", &N[i + 1]);
}
for (int k = 0; N[k] != 0; k++) {
if (N[k] <= 3) {
h = (N[k] - 1) * 5 + 1.75;
} else {
h = 5 * 2 + (N[k] - 3) * 3 + 1.75;
}
t = sqrt(2 * h / g);
printf("%.3f\n", t);
}
return 0;
}