Entrada y salida estándar, Scanner, Print Writter, ejercicios
Scanner sc = new Scanner(System.in);
//Leer una linea completa
String a = sc.nextLine();
//Leer una palabra hasta un espacio
String b = sc.next();
//Leer un entero
int a = sc.nextInt();
System.out.print("Texto sin salto de linea");
System.out.println("Salto de linea");
double pi = 3.141592654;
System.out.printf("%.4f\n", pi);
//3.1416
int a = 5;
double b = 3.141592654;
String c = "Hola mundo";
System.out.printf("Int: %d Double: %f String: %s\n", a,b,c);
//Int: 5 Double: 3.141593 String: Hola mundo
System.out.printf("%04d %.3f", a,b);
//0005 3.142
Enunciado: Dados dos numeros a y b, retornar a+b.
Entradas: Un numero n indicando el número de casos de prueba. Luego n lineas con dos enteros a y b separados por espacios.
Salidas: Para cada caso imprimir una linea con a+b
Entradas | Salidas |
3 1 2 5 9 10 14 |
3 14 24 |
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while(n > 0){
System.out.println(sc.nextInt()+sc.nextInt());
n--;
}
}
}
Un solo caso de prueba.
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextInt()+sc.nextInt());
Primero se indica cuantos casos de prueba se evaluaran, y posteriormente se indica cada caso.
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while(n > 0){
System.out.println(sc.nextInt()+sc.nextInt());
n--;
}
Se evaluan varios casos de prueba, pero no se indica cuantos. El programa debe leer mientras aun queden datos por evaluar.
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
System.out.println(sc.nextInt()+sc.nextInt());
}
import java.util.*;
import java.io.*;
public class Main {
public static void main (String[] args) throws IOException{
Scanner sc = new Scanner();
int a = Integer.parseInt(sc.next());
int b = Integer.parseInt(sc.next());
System.out.println(a+b);
}
static class Scanner{
//Copiar código del link
}
}
Método | Función |
---|---|
nextLine() | Lee el renglón entero hasta llegar a un salto de linea. Retorna un string. |
next() | Lee de la entrada hasta encontrar un espacio, un salto de linea. Retorna un string. |
hasNext() | Indica si hay mas datos esperando por ser leídos. Retorna un boolean. |
PrintWriter bw = new PrintWriter(System.out);
bw.print("Texto");
bw.println("Texto");
bw.printf("Texto", parametro);
bw.flush();
A - Cheating Knight
https://acm.javeriana.edu.co/maratones/2016/01/La tierra del Rey Black es una superficie plana que se extiende infinitamente en cuadrados blancos y negros, muy similar a un tablero de ajedrez infinito. El área de cada cuadrado es exactamente 1m^2. Sir Humpsalot es un caballero que vive en la tierra del Rey Black. Por ley, los caballeros sólo podrán moverse saltando desde el centro de una plaza al centro de otro cuadrado, siempre que la distancia entre los centros es exactamente √D metros.
Aunque Sir Humpsalot realiza saltos de √D metros, no se molesta en caer en el centro de una plaza. En otras palabras, a veces cae en una esquina de un cuadrado o incluso en la frontera entre las casillas adyacentes, lo que sea más conveniente. Llegar a su destino suele ser más fácil de esta manera.
Teniendo en cuenta que Sir Humpsalot comienza en el centro de la plaza de coordenadas (0, 0) y tiene que viajar hasta el centro de la plaza de coordenadas (X, Y), su tarea consiste en calcular el número mínimo de saltos que Sir Jumpsalot necesita para llegar a su destino.
Input: La entrada empieza con una linea conteniendo un entero T, el número de casos de prueba. Luego para cada caso se encuentra una linea con 3 enteros X, Y y Z separados por espacios, indicando el cuadrado de la distancia realizada en un salto simple, y las coordenadas del destino final. 1 ≤ D ≤ 108 y −104 ≤ X, Y ≤ 104.
Output: Para cada caso de prueba, imprime una linea con un simple entero J, el minimo número de saltos necesarios para alcanzar el destino.
Input | Output |
---|---|
5 5 0 0 5 2 3 25 -3 -4 100 0 -100 1 2345 6789 |
0 2 1 10 7183 |
import java.util.*;
import java.lang.*;
import java.io.*;
public class cheating {
public static void main (String[] args) throws java.lang.Exception {
Scanner sc = new Scanner();
int t = Integer.parseInt(sc.next());
double d, x, y, dist;
while(t > 0){
d = Double.parseDouble(sc.next());
x = Double.parseDouble(sc.next());
y = Double.parseDouble(sc.next());
dist = Math.sqrt((x * x + y * y) / d );
if(dist > 0 && dist < 1){
dist = 2;
}
System.out.printf("%.0f\n",Math.ceil(dist));
t--;
}
}
static class Scanner{
//Insertar la clase incluida en el github.
}
}