Maratona 2022 - Resoluções
import java .util .Arrays ;
import java .util .Scanner ;
class Main {
public static void main (String [] args ) {
Scanner s = new Scanner (System .in );
int dias = s .nextInt ();
int porDia = s .nextInt ();
double [][] medicoes = new double [dias ][porDia ];
for (int i = 0 ; i < dias ; i ++) {
for (int j = 0 ; j < porDia ; j ++) {
medicoes [i ][j ] = s .nextDouble ();
}
}
s .close ();
System .out .println ("-Media das medicoes dos dias-" );
for (int i = 0 ; i < dias ; i ++) {
System .out .printf ("Dia %d: " , i );
System .out .printf ("%.2f\n " , Arrays .stream (medicoes [i ]).reduce ((acc , cur ) -> acc + cur ).getAsDouble () / porDia );
}
System .out .println ("-Media de cada medicao diaria -" );
for (int i = 0 ; i < porDia ; i ++) {
System .out .printf ("Medicao %d: " , i );
double soma = 0.0 ;
for (int j = 0 ; j < dias ; j ++) {
soma += medicoes [j ][i ];
}
System .out .printf ("%.2f\n " , soma / dias );
}
// System.out.println(Arrays.deepToString(medicoes));
}
}
import java .util .Scanner ;
class Main {
public static void main (String [] args ) {
Scanner scanner = new Scanner (System .in );
int dividendo = scanner .nextInt ();
int divisor = scanner .nextInt ();
int quociente = dividendo / divisor ;
for (int i = 1 ; i < quociente ; i ++) {
System .out .println (dividendo - divisor * i );
}
System .out .println (dividendo % divisor );
System .out .println (quociente );
scanner .close ();
}
}
import java .util .Scanner ;
class Main {
public static void main (String [] args ) {
Scanner scanner = new Scanner (System .in );
int dividendo = scanner .nextInt ();
int divisor = scanner .nextInt ();
int i = 0 ;
while (dividendo >= divisor ) {
i ++;
dividendo -= divisor ;
if (dividendo >= divisor ) System .out .println (dividendo );
}
System .out .println (dividendo );
System .out .println (i );
scanner .close ();
}
}
import java .util .Scanner ;
class Main {
//
public static boolean isPrime (int n ) {
// 2 is the only even prime number
if (n > 2 && n % 2 == 0 ) return false ;
// if num is divisible by any number greater than its square root,
// then the result of the division would also be a number smaller than the square root
// this would have already been checked in previous iterations
for (int i = 3 ; i <= Math .sqrt (n ); i += 2 ) {
if (n % i == 0 ) return false ;
}
return true ;
}
public static void main (String [] args ) {
Scanner scanner = new Scanner (System .in );
int n = scanner .nextInt (); // n primeiros números primos
int x = scanner .nextInt () * 2 ; // a partir do dobro de x
while (n != 0 ) {
if (isPrime (x )) {
System .out .println (x );
n --;
}
x ++;
}
scanner .close ();
}
}
import java .util .Scanner ;
class Main {
public static void main (String [] args ) {
Scanner scanner = new Scanner (System .in );
int n = scanner .nextInt ();
scanner .close ();
String binary = "" ;
while (n != 1 ) {
if (n % 2 == 0 ) {
binary += "0" ;
} else {
binary += "1" ;
n -= 1 ;
}
n /= 2 ;
}
binary += "1" ;
System .out .println (new StringBuilder (binary ).reverse ().toString ());
}
}
import java .util .Scanner ;
class Main {
// pad with 0s
// direcao: 0 = end, 1 start
public static String pad (String str , int posicao , int quantidade ) {
for (; quantidade > 0 ; quantidade --) {
if (posicao == 0 ) {
str += "0" ;
} else {
str = "0" + str ;
}
}
return str ;
}
public static void main (String [] args ) {
Scanner s = new Scanner (System .in );
String binarioInput = s .next ();
// 0 = << (esquerda, add 0s to end); 1 = >> (direita, add 0s to start)
int deslocamento = s .nextInt ();
int quantidade = s .nextInt ();
s .close ();
// pad start to achieve length 8
binarioInput = pad (binarioInput , 1 , 8 - binarioInput .length ());
binarioInput = pad (binarioInput , deslocamento , quantidade );
int start = deslocamento == 1 ? 0 : quantidade ;
for (int i = start ; i < start + 8 ; i ++) {
System .out .println (binarioInput .charAt (i ));
}
}
}
import java .util .Scanner ;
import java .util .Arrays ;
class Main {
public static void main (String [] args ) {
Scanner s = new Scanner (System .in );
String binarioInput = s .next ();
int deslocamento = s .nextInt (); // 0 = << (esquerda); 1 = >> (direita)
int quantidade = s .nextInt ();
s .close ();
// create array and fill it with 0s to achieve length equal to 8
int [] binario = new int [8 ];
Arrays .fill (binario , 0 );
//
int start = 8 - binarioInput .length ();
for (int i = start ; i < 8 ; i ++) {
binario [i ] = Integer .parseInt (Character .toString (binarioInput .charAt (i - start )));
}
// desloca
if (deslocamento == 0 ) {
for (int i = 0 ; i < 8 ; i ++) {
if (i + quantidade < 8 ) { // desloca
binario [i ] = binario [i + quantidade ];
} else { // preenche com 0
binario [i ] = 0 ;
}
}
} else {
for (int i = 7 ; i >= 0 ; i --) {
if (i - quantidade >= 0 ) { // desloca
binario [i ] = binario [i - quantidade ];
} else { // preenche com 0
binario [i ] = 0 ;
}
}
}
for (int bit : binario ) {
System .out .println (bit );
}
}
}