UVa: Problema 10071 – Back to High School Physics
Mais um problema resolvido do UVa. Neste post vamos resolver o problema 10071 – Back to High School Physics (De volta para a física do ensino médio) em Java.
Descrição do problema:
Uma partícula tem uma velocidade inicial e aceleração constante. Se a velocidade após um certo tempo é v, qual será o deslocamento após o dobro desse tempo?
A entrada do problema consiste em dois inteiros, um em cada linha. Esse dois inteiros representam v (-100 <= v <= 10) e t (0<=t<= 200).
A saída deve ser o valor do deslocamento no dobro de tempo.
Entendendo o Problema:
Esse é um problema de física sobre deslocamento, velocidade e aceleração. Lembra-se das aulas de física?
Para resolver esse problema, vamos usar a famos fórmula d=v*t + 1/2*a*t^2:
No problema não temos aceleração, então podemos simplificar a equação para d = v*t.
Mas queremos saber o deslocamento no dobro do tempo, então basta multiplicar o resultado por 2: d = v*t*2.
Dicas:
- Leia a entrada até o fim com BufferedReader, ou seja, até que readLine() seja null
- Faça o output da fórmula simplificada
- Tempo de execução: 1.584s
Código:
package com.loiane.volume0;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Problem 10071 - Back to High School Physics
*
* Simplest problem ever... just output 2*v*t
*
* Problem Link:
* http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=show_problem&problem=1012
*
* Runtime: 1.584s
*
* @author Loiane Groner
* http://loiane.com
* http://loianegroner.com
*/
public class P10071 {
public static void main(String[] args) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
String[] num;
int v, t;
while ((line = in.readLine()) != null)
{
num = line.split(" ");
v = Integer.parseInt(num[0]);
t = Integer.parseInt(num[1]);
System.out.println(calcDistance(v,t));
}
}
public static int calcDistance(int v, int t){
return v*t*2;
}
}
Testando Entrada e Saída:
package com.loiane.test.volume0;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.loiane.volume0.P10071;
/**
* Test Case
* Problem 10071 - Back to High School Physics
*
* @author Loiane Groner
* http://loiane.com
* http://loianegroner.com
*/
public class TestP10071 {
@Test
public void testProblem10071(){
assertEquals(0, P10071.calcDistance(0, 0));
assertEquals(120, P10071.calcDistance(5, 12));
}
}
Bons códigos!









Você poderia postar exercicíos mais avançados? Algo que realmente vale a pena perder um pouco de tempo e pensar? Esses aí não vejo muita graça…
@andeb
Estou seguindo a ordem dos problemas para iniciantes. Tem problemas para manipulação de string, teoria matemática, grafos, etc.
A idéia é postar todos os que tenho pronto com o decorrer do tempo.
Mas vou postar uns mais avançadinhos sim!
[]‘s
Menina, adorei esse tópico. Tem muita gente que adora brincar com resolução de algorítimos do tipo. Queria ver alguma resolução de um problema de otimização no próximo artigo, pode ser? Estamos esperando você aqui em Fortaleza para o Brasil JS viu? Beijo.