UVa: Problema 10071 - Back to High School Physics

18 Mar 2011
1 min read

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:

Código:

[code lang="java" firstline="1" toolbar="true" collapse="false" wraplines="false"]
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
* https://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;
}
}
[/code]

Testando Entrada e Saída:

[code lang="java" firstline="1" toolbar="true" collapse="false" wraplines="false"]
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
* https://loiane.com
* http://loianegroner.com
*/
public class TestP10071 {

@Test
public void testProblem10071(){

assertEquals(0, P10071.calcDistance(0, 0));
assertEquals(120, P10071.calcDistance(5, 12));
}
}
[/code]

Bons códigos!