import java.util.BitSet;
import java.util.Scanner;
/**
* Solución a 10783 - Odd Sum [https://uva.onlinejudge.org/]
*
* @author BreakDark (Jhonny Monrroy)
* @version 1.0 24 nov. de 2017
*/
// Accepted!!! xD
public class Main {
public static void main(String[] args) {
Scanner Lee = new Scanner(System.in);
int t, a, b, i, j, sum;
BitSet impares = new BitSet(101);
for (i = 1; i <= 100; i += 2)
impares.set(i);
// AQUI INICIA EL PROGRAMA
t = Lee.nextInt();
for (i = 1; i <= t; i++) {
a = Lee.nextInt();
b = Lee.nextInt();
sum = 0;
for (j = a; j <= b; j++) {
if (impares.get(j))
sum += j;
}
System.out.println("Case " + i + ": " + sum);
}
Lee.close();
}
}
Blog dedicado a la publicación de artículos, programas propios, traducciones de Roms de Nes, super Nes y mas, y alguno que otro artículo sobre tecnologia.
Monday, January 22, 2018
Solución al problema: 10783 - Odd Sum con Java
Para ver el link del problema Click aqui
Solución al problema: 488 - Triangle Wave con Java
Para ver el link del problema Click aqui
import java.util.Scanner;
/**
* 488 - Triangle Wave [http://uva.onlinejudge.org]
*
* @author BreakDark
* @version 2.0 beta
*/
// ACEPTADO!!! xD
public class Main {
public static void main(String[] args) {
Scanner Lee; // para leer los datos de entrada
int numcasos; // para el numero de casos
byte amplitud; // para la amplitud
int frecuencia; // frecuencia
int i; // para los bucles
// vector de ondas
String[] vec = {"", "1", "1\n22\n1", "1\n22\n333\n22\n1", "1\n22\n333\n4444\n333\n22\n1", "1\n22\n333\n4444\n55555\n4444\n333\n22\n1",
"1\n22\n333\n4444\n55555\n666666\n55555\n4444\n333\n22\n1",
"1\n22\n333\n4444\n55555\n666666\n7777777\n666666\n55555\n4444\n333\n22\n1",
"1\n22\n333\n4444\n55555\n666666\n7777777\n88888888\n7777777\n666666\n55555\n4444\n333\n22\n1",
"1\n22\n333\n4444\n55555\n666666\n7777777\n88888888\n999999999\n88888888\n7777777\n666666\n55555\n4444\n333\n22\n1"};
// AQUI INICIA EL PROGRAMA
Lee = new Scanner(System.in);
numcasos = Lee.nextInt();
while(numcasos-- > 0){
amplitud = Lee.nextByte();
frecuencia = Lee.nextInt();
for(i = 0; i < frecuencia; i++){
System.out.println(vec[amplitud]);
if(i < frecuencia - 1 || numcasos > 0)
System.out.println();
}
}
}
}
Solución al problema: 106 - Fermat vs Pythagoras con Java
Para ver el link del problema Click aqui
import java.util.BitSet;
import java.util.Scanner;
/**
* 106 - Fermat vs. Pythagoras [http://uva.onlinejudge.org]
*
* @author BreakDark
* @version 3.0 beta
*/
// ACEPTADO!!! xD
public class Main {
public static void main(String[] args) {
Scanner Lee; // Para leer los datos de entrada
int N; // para el N a leer
// AQUI INICIA EL PROGRAMA!!!
Lee = new Scanner(System.in);
while(Lee.hasNext()){
N = Lee.nextInt();
calcula(N);
}
}
/**
* Procedimiento que realiza todo el trabajo
*
* @param N
* el numero a procesar
*/
private static void calcula(int N) {
int cont = 0;
int numUsados = 0;
int r, s, i, x, y, z;
BitSet numeros = new BitSet(N + 1);
for(r = 2; r * r <= N; r++)
for(s = 1; s < r && r * r + s * s <= N; s++){
x = r * r - s * s;
y = 2 * r * s;
z = r * r + s * s;
if(mcd(x, y) == 1){
cont++;
for(i = 1; z * i <= N; i++){
if(!numeros.get(x * i)){
numUsados++;
numeros.set(x * i);
}
// para y
if(!numeros.get(y * i)){
numUsados++;
numeros.set(y * i);
}
// para z
if(!numeros.get(z * i)){
numUsados++;
numeros.set(z * i);
}
}
}
}
System.out.println(cont + " " + (N - numUsados));
}
/**
* Funcion que encuentra el MCD de dos enteros basado en el slgoritmo de
* euclides
*
* @param a
* entero a evaluar el MCD
* @param b
* entero a evaluar el MCD
* @return el MCD de a y b
*/
private static int mcd(int a, int b) {
int r;
if(b > a){
r = a;
a = b;
b = r;
}
r = b;
while(b > 0){
r = a % b;
a = b;
b = r;
}
return a;
}
}
Subscribe to:
Comments (Atom)