Resoluções da Etapa 0

Desafio 1 – Barris de vinho

Enunciado
Resolução
import java.util.*;
import java.math.*;

public class Barris {
  public static void main(String[] args){
    Scanner sc1 = new Scanner(System.in);
    sc1.useLocale(Locale.ENGLISH);
    int N = sc1.nextInt();
    for(int i = 0; i < N; i++){
      BigDecimal v1 = sc1.nextBigDecimal();
      BigDecimal a1 = sc1.nextBigDecimal();
      BigDecimal v2 = sc1.nextBigDecimal();
      BigDecimal a2 = sc1.nextBigDecimal();
      BigDecimal resp = new BigDecimal("0.14");

      if((a1.compareTo(resp) > 0 && a2.compareTo(resp) > 0) || (a1.compareTo(resp) < 0 && a2.compareTo(resp) < 0))
        System.out.println("Assim n vai dar. A bebida tem que estar perfeita!");
      else {
        BigDecimal alcool = (v1.multiply(a1)).add(v2.multiply(a2));
        BigDecimal porcent = alcool.divide(v1.add(v2), MathContext.DECIMAL64);
        if(porcent.compareTo(resp) == 0) 
          System.out.println("Hehe, esse aqui ta no ponto.");
        else if(porcent.compareTo(resp) < 0){
          if(a2.compareTo(a1) > 0) 
            System.out.println("Hehe, esse aqui ta no ponto. Guardem o barril 1 pra depois.");
          else 
            System.out.println("Hehe, esse aqui ta no ponto. Guardem o barril 2 pra depois.");
         }
         else { 
           if(a2.compareTo(a1) > 0) 
             System.out.println("Hehe, esse aqui ta no ponto. Guardem o barril 2 pra depois.");
           else 
             System.out.println("Hehe, esse aqui ta no ponto. Guardem o barril 1 pra depois.");
        }
      }
    }
  }
}

Desafio 2 – Guerra de Troia

Enunciado
Resolução
import java.util.Scanner;

public class Troia {
  public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    String[] entrada = sc.nextLine().split(" ");
    while(!entrada[0].equals("C")){
      int g=0; 
      boolean a = false; 
      for(int i=0; i<entrada[0].length(); i++){
        switch(entrada[0].charAt(i)){
          case 'G': 
            g++;
            break;
          case 'A': 
            a = !a;
            break;
         }
       }
       if(a && g > Integer.parseInt(entrada[1])-10)
         System.out.println("Eu que nao fico no caminho dele!");
       else if(g>Integer.parseInt(entrada[1])) 
         System.out.println("Recuar!");
       else 
         System.out.println("Atacar!");
       entrada = sc.nextLine().split(" ");
    }
    System.out.println("Ah que mal deve ser receber um presente de grego?");
  }
}

Desafio 3 – As 12 tarefas de Hercules

Enunciado
Resolução
import java.util.Scanner;

public class Tarefas {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        for(int i=0; i<n; i++){
            String[] s = sc.nextLine().split(" ");
            String t = s[s.length-1];
            switch (t){
                case "7":
                    System.out.println("Eu capturei o touro de Creta");
                    break;
                case "8":
                    System.out.println("Eu capturei os cavalos de Diomedes");
                    break;
                case "9":
                    System.out.println("Eu obtive o cinto de Hipolita");
                    break;
                case "10":
                    System.out.println("Eu roubei os gados de Geriao");
                    break;
                case "11":
                    System.out.println("Eu consegui as macas de ouro");
                    break;
                case "12":
                    System.out.println("Eu capturei Cerberos");
                    break;
                default:
                    System.out.println("Vai catar coquinho, seu besta fracote");
            }
        }     
    }
    
}

Desafio 4 – Narciso Matemático

Enunciado
Resolução
import java.util.Scanner;

public class Narciso {
    public static void main(String[] args) {
        Scanner sc1 = new Scanner (System.in);
        int n = sc1.nextInt();
        sc1.nextLine();
        int a,b;
        int letra = 0;
        for (int i =0 ; i< n; i++){
            String ope = sc1.nextLine();
            for(int j = 0; j < ope.length(); j++){
                if(!(Character.isDigit(ope.charAt(j)))) {
                    letra = j;
                    break;
                }
            }
            a = Integer.parseInt(ope.substring(0, letra));
            b = Integer.parseInt(ope.substring(letra+1, ope.length()));
            int res =0;
            switch(ope.charAt(letra)){
                case 'n':
                    res = a+b;
                    break;
                case 'a':
                    res = a-b;
                    break;
                case 'r':
                    res = a*b;
                    break;
                case 'c':
                    res = a/b;
                    break;
                case 'i':
                    int respa = 1;
                    for(int j = a; j > 0; j--) respa = respa*j;
                    int respb = 1;
                    for(int j = b; j > 0; j--) respb = respb*j;
                    res = respa/respb;
                    break;
                case 's':
                    res = a%b;
                    break;
                case 'o':
                    res = 1;
                    for (int j =0 ; j < b ; j++){
                        res = res * a;
                    }
                    break;
            }
            System.out.println(res);
        }
    }
}

Desafio 5 – Odisseu e as sereias

Enunciado
Resolução
import java.util.Scanner;

public class Sereia {
    public static void main(String[] args){

        Scanner input = new Scanner(System.in);

        int n = Integer.parseInt(input.nextLine());

        String[] chaves = {"dor", "medo", "morte"};

        for(int i = 0; i < n; i++){
            String palavra = "";
            int check = 0;

            String entrada = (input.nextLine()).toLowerCase();

                if(entrada.contains("morte")){
                	palavra = "morte";
                	int[] resp = new int[5];
                	resp = checkPalavra("morte", entrada);
                	System.out.println(resp[0] + "-" + resp[1] + "-" + resp[2] + "-" + resp[3] + "-" 
                		+ resp[4] + " " + palavra );
                	check = 1;
                }
            	if(entrada.contains("medo") && check != 1){
                	palavra = "medo";
                	int[] resp = new int[4];
                	resp = checkPalavra("medo", entrada);
                	System.out.println(resp[0] + "-" + resp[1] + "-" + resp[2] + "-" + resp[3] + " " + palavra );
                	check = 1;
                }
                if(entrada.contains("dor") && check != 1){
                	palavra = "dor";
                	int[] resp = new int[3];
                	resp = checkPalavra("dor", entrada);
                	System.out.println(resp[0] + "-" + resp[1] + "-" + resp[2] + " " + palavra );
                }

        }
    }

    public static int[] checkPalavra(String chave, String entrada){
    	int[] ump = new int[5];
    	int p = 0;
    	int j;
    	int q;
    	char ch = chave.charAt(p);
    	for(int i = 0; i<entrada.length(); i++){
    		int[] num = new int[5];
    		p = 0;
    		int acertando = 0;
    		if(entrada.charAt(i) == chave.charAt(p)){
    			acertando++;
    			num[0] = i;
    		}
    		j = i;
    		q = p;
    		while(acertando>0 && acertando<chave.length()){
    			j++;
    			q++;
    			if(entrada.charAt(j) == chave.charAt(q)){
    				acertando++;
    				num[q] = j;
    			}
    			else
    				acertando = 0;
    		}
    		if(acertando==chave.length())
    			return num;
    	}
    	return ump;
    }
}

Desafio 6 – Paradeiro de Perséfone

Enunciado
Resolução
import java.util.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Persefone {

    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);  
        int n = sc.nextInt();
        sc.nextLine();
        for(int i=0; i<n; i++){
            String s = sc.nextLine();
            StringBuffer sb = new StringBuffer(s);
            sb = sb.reverse();
            SimpleDateFormat sdf = new SimpleDateFormat("mm/dd");
            Date data = sdf.parse(sb.toString());
            Date iOut = sdf.parse("20/03");
            Date fOut = sdf.parse("21/09");
            System.out.printf(sb.toString());
            if (data.compareTo(iOut)>=0 && data.compareTo(fOut)<=0)
                System.out.println(" O solo nao estara ao nosso favor nesse dia.");
            else
                System.out.println(" O solo estara ao nosso favor nesse dia.");

        }

    }
    
}

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *