Estás en un coche y vas a la velocidad u m/s. Tu aceleración a es constante. Tras un tiempo particular t, tu velocidad será v m/s y tu desplazamiento es s. Ahora se te dan algunos (no todos) los valores para dichas variables. Tienes que encontrar los parámetros perdidos.
| |
Entrada/Input
| |
El fichero de entrada puede contener múltiples casos de prueba. Cada caso puede ser uno de los siguientes:
1 u v t
2 u v a
3 u a s
4 v a s
La entrada terminará con un simple 0.
| |
Salida/Output
| |
Para cada caso de tu entrada tienes que imprimir una línea que contenga el número de caso y:
Si es 1 u v t se te darán y deberás imprimir s y a
Si es 2 u v a se te darán y deberás imprimir s y t
Si es 3 u a s se te darán y deberás imprimir v y t
Si es 4 v a s se te darán y deberás imprimir u y t
Comprueba los ejemplos para mas detalles. Puedes asumir que los casos dados no te conducirán a una situación no válida. Usa 'double' para todos los cálculos y la salida de todos los números con tres decimales.
| |
Sample Input
|
Output for Sample Input
|
1 10 5 2.0
1 5 10.0 2
2 10 11 2
3 5 1 6
4 5.0 -1 6
0
|
Case 1: 15.000 -2.500
Case 2: 15.000 2.500
Case 3: 5.250 0.500
Case 4: 6.083 1.083
Case 5: 6.083 1.083
|
Problem Setter: Jane Alam Jan
Special Thanks: Md. Shiplu Hawlader
|
package car.pkg11715;
import java.util.Locale;
import java.util.Locale;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Car11715 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in).useLocale(Locale.US);
//Locale localus = new Locale("en","UK","WIN");
Locale.setDefault(Locale.US);
int caso,cont=1;
double u,v,t,a,s;
do {
caso= leer.nextInt();
switch (caso) {
case 1:
u= leer.nextDouble();
v= leer.nextDouble();
t= leer.nextDouble();
//s y a
a= (v-u)/t;
s = u*t+(a*t*t)/2;
System.out.printf("Case %d: %.3f %.3f%n",cont,s,a);
break;
case 2:
u= leer.nextDouble();
v= leer.nextDouble();
a= leer.nextDouble();
t=(v-u)/a;
s = u*t+(a*t*t)/2;
System.out.printf("Case %d: %.3f %.3f%n",cont,s,t);
//sy t
break;
case 3:
u= leer.nextDouble();
a= leer.nextDouble();
s= leer.nextDouble();
//v y t
v= Math.sqrt((u*u)+2*a*s);
t=(v-u)/a;
System.out.printf("Case %d: %.3f %.3f%n",cont,v,t);
break;
case 4:
v= leer.nextDouble();
a= leer.nextDouble();
s= leer.nextDouble();
// u y t
u=Math.sqrt((v*v)-2*a*s);
t= (v-u)/a;
System.out.printf("Case %d: %.3f %.3f%n",cont,v,t);
break;
}
++cont;
} while (caso!=0);
}
}
No hay comentarios:
Publicar un comentario