Resoluções da Etapa 6

Desafio 1

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

public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        String linha = scan.nextLine();
        while(!linha.equals("END")  ){
            String valores[] = linha.split(" ");
            
            int mFaltantes = Integer.parseInt(valores[0]);
            
            int mNavegados = 0;
            
            for(int i = 1; i < valores.length; i++){
                switch(valores[i]){
                    case "t":
                        mNavegados += 100;
                        break;
                    case "m":
                        mNavegados += 60;
                        break;
                    case "s":
                        mNavegados += 20;
                        break;
                    case "d":
                        mNavegados -= 20;
                        break;
                    case "a":
                        mNavegados -= 15;
                        break;
                    case "e":
                        mNavegados -= 100;
                        break;
                    case "b":
                        mNavegados *= 10;
                        break;
                    default:
                        break;
                }
            }
            
            mFaltantes -= mNavegados;
            
            if(mFaltantes > 5){
                System.out.println(mNavegados + " megametros foram navegados. Faltam " + mFaltantes + " megametros para chegar na terra.");
            }
            else{
                System.out.println(mNavegados + " megametros foram navegados. Estamos de volta a estacao EsPETcial.");
            }
            linha = scan.nextLine();
        }
    }
}
Resolução em C++
#include "javalib.hpp"

int main()
{
    while(true)
    {
        std::string line = nextLine();
        if(line == "END") break;
        std::vector<std::string> ops = split(line, " ");

        int curr = stoi(ops[0]), mod = 0;

        for(int i = 1; i < ops.size(); i++)
        {
            switch(ops[i][0])
            {
                case 't':
                    mod += 100;
                    break;
                case 'm':
                    mod += 60;
                    break;
                case 's':
                    mod += 20;
                    break;
                case 'd':
                    mod -= 20;
                    break;
                case 'a':
                    mod -= 15;
                    break;
                case 'e':
                    mod -= 100;
                    break;
                case 'b':
                    mod *= 10;
                    break;
            }
        }

        if(((curr < mod) ? (mod - curr) : (curr - mod) ) > 5)
        {
            std::cout << mod << " megametros foram navegados.  Faltam " << (curr - mod) << " megametros para chegar na terra." << std::endl;
        } else
        {
            std::cout << mod << " megametros foram navegados.  Estamos de volta a estacao EsPETcial." << std::endl;
        }
    }
}

Desafio 2

Enunciado
Resolução em Java
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        int qtd = Integer.parseInt(scan.nextLine());
        ArrayList numerosEstranhos = geraNumerosEstranhos();
        for (int i = 0; i < qtd; i++) {
            String[] partes = scan.nextLine().split(" ");
            
            boolean estranho = false;
            for (int j = 0; j < partes.length; j++) {
                if(j%2.0 == 0){
                    if(numerosEstranhos.contains(Integer.parseInt(partes[j]))){
                        estranho = true;
                        break;
                    }
                }
            }
            if(!estranho)
                System.out.println("Pode realizar a conta, vossa Majestade Matematica.");
            else
                System.out.println("Cuidado com os numeros estranhos, Moranguete!");
        }
    }

    public static ArrayList geraNumerosEstranhos(){
        ArrayList<Integer> numeros = new ArrayList<>();
        numeros.add(3);
        numeros.add(7);
        for (int i = 2; i < 100; i++) {
            numeros.add(numeros.get(i-2) + numeros.get(i-1));
        }
        return numeros;
    }
}
Resolução em C++
#include "javalib.hpp"

bool ehEstranho(int n)
{
    int n1 = 3, n2 = 7, aux;
    while(n1 <= n)
    {
        if(n1 == n) return true;
        aux = n1 + n2;
        n1 = n2;
        n2 = aux;
    }
    return false;
}

int main()
{
    int n = nextInt();
    nextLine();

    for(; n > 0; n--)
    {
        std::vector<std::string> nums = split(nextLine(), " ");

        bool success = true;
        for(int i = 0; i < nums.size(); i+=2)
        {
            if(ehEstranho(stoi(nums[i])))
            {
                success = false;
                break;
            }
        }
        std::cout << ((success) ? "Pode realizar a conta, vossa Majestade Matematica." : "Cuidado com os numeros estranhos, Moranguete!") << std::endl;
    }
}

Desafio 3

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

public class Main3 {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        String linha = scan.nextLine();
        
        while(!linha.equals("END")){
            
            String valores[] = linha.split(" ");
            
            int r = Integer.parseInt(valores[0]);
            int w = Integer.parseInt(valores[1]);
            int t = Integer.parseInt(valores[2]);
            
            int m = (int)(Math.pow(r+w, 1/4) * Math.pow(t, (2)));
            
            System.out.println(m);
            
            linha = scan.nextLine();
            
        }
    }
}
Resolução em C++
#include "javalib.hpp"

int main()
{
    while(true)
    {
        std::string line = nextLine();
        if(line == "END") break;

        std::vector<std::string> nums = split(line, " ");

        double r = stod(nums[0]);
        double w = stod(nums[1]);
        double t = stod(nums[2]);

        std::cout << (int)(pow((r + w), 1/4) * (t*t)) << std::endl;
    }
}

Desafio 4

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

public class Main {

    public static void main(String[] args) {
        
        Scanner scan = new Scanner(System.in);
        
        int qtd = Integer.parseInt(scan.nextLine());
        
        for (int i = 0; i < qtd; i++) {
            
            String[] base = new String[100];
            
            String linha = scan.nextLine();
                        
            while(!linha.equals("Its time to stop!") && !linha.equals("Stop and get some help")){
                
                String[] linhaSeparada = linha.split(" ");
                
                String comando = linhaSeparada[0];
                
                String nome = "";
                
                int posicao = 0;
                
                switch (comando) {
                    
                    case "insert":
                        nome = linhaSeparada[1];
                        posicao = Integer.parseInt(linhaSeparada[3]);
                        base[posicao] = nome;
                        break;
                        
                    case "delete_from":
                        posicao = Integer.parseInt(linhaSeparada[1]);
                        base[posicao] = "";
                        break;
                    
                    case "alter_from":
                        posicao = Integer.parseInt(linhaSeparada[1]);
                        nome = linhaSeparada[3];
                        base[posicao] = nome;
                        
                }
 
                linha = scan.nextLine();
                
            }
            
            for(int j = 0; j < base.length; j++) {
                if(base[j] != null && !base[j].isEmpty())
                    System.out.println(base[j]);
            }
            
            System.out.println("--------------------");
            
        }
    }
}
Resolução em C++
#include "javalib.hpp"

int main()
{
    int n = nextInt();

    for(; n > 0; n--)
    {
        std::string db[100] { "" };
        while(true)
        {
            std::string word = next();

            if(word == "insert")
            {
                std::string name = next();
                next();
                int pos = nextInt();
                db[pos] = name;
            } else if(word == "delete_from")
            {
                int pos = nextInt();
                db[pos] = "";
            } else if(word == "alter_from")
            {
                int pos = nextInt();
                next();
                std::string name = next();
                db[pos] = name;
            } else
            {
                nextLine();
                for(int i = 0; i < 100; i++)
                {
                    if(db[i] != "")
                        std::cout << db[i] << std::endl;
                }
                std::cout << "--------------------" << std::endl;
                break;
            }
        }
}
}

Desafio 5

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

public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        int qtd = Integer.parseInt(scan.nextLine());
        for (int i = 0; i < qtd; i++) {
            String[] palavras = scan.nextLine().split(" ");
            char primeiro = palavras[0].toLowerCase().charAt(0);
            boolean aceito = true;
            for (String palavra : palavras) {
                if(palavra.toLowerCase().charAt(0) != primeiro){
                    System.out.println("QUE NUM VAI DAR O Q");
                    aceito = false;
                    break;
                }
            }
            if(aceito)
                System.out.println("AQUI EH BODY BUILDER");

        }
    }
}
Resolução em C++
#include "javalib.hpp"

int main()
{
    int n = nextInt();
    nextLine();

    for(; n > 0; n--)
    {
        std::vector<std::string> wrds = split(toLowerCase(nextLine()), " ");

        bool success = true;
        char ch = wrds[0][0];
        for(std::string wrd : wrds)
        {
            if(wrd[0] != ch)
            {
                success = false;
                break;
            }
        }

        std::cout << ((success) ? "AQUI EH BODY BUILDER" : "QUE NUM VAI DAR O Q") << std::endl;
    }
}

Desafio 6

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

public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        int qtd = Integer.parseInt(scan.nextLine());
        for (int i = 0; i < qtd; i++) {
            if(scan.nextLine().toLowerCase().equals("caneta azul"))
                System.out.println("Azul caneta");
            else
                System.out.println("Rapido, precisamos entregar pra fisica uma caneta azul!");
        }
    }
}
Resolução em C++
#include "javalib.hpp"

int main()
{
    int n = nextInt();
    nextLine();

    for(; n > 0; n--)
    {
        std::string line = nextLine();
        if(toLowerCase(line) == "caneta azul")
            std::cout << "Azul caneta" << std::endl;
        else
            std::cout << "Rapido, precisamos entregar pra fisica uma caneta azul!" << std::endl;
    }
}

Desafio 7

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

public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        int qtd = Integer.parseInt(scan.nextLine());
        for (int i = 0; i < qtd; i++) {
            String saida = "";
            switch(scan.nextLine()){
                case "Lobo":
                    saida = "Cachorro";
                    break;
                case "Aguia":
                    saida = "Gaviao";
                    break;
                case "Golfinho":
                    saida = "Tubarao";
                    break;
                case "Orangotango":
                    saida = "Chimpanze";
                    break;
                case "Coala":
                    saida = "Urso";
                    break;
                case "Coruja":
                    saida = "Papagaio";
                    break;
                case "Moreia":
                    saida = "Cobra Marinha";
                    break;
                case "Arraia":
                    saida = "ESPACONAVE";
                    break;
                case "Tigre":
                    saida = "Leao";
                    break;
                case "Hipopotamo":
                    saida = "Elefante";
                    break;
                case "Capivara":
                    saida = "Rato grande";
                    break;
                case "Furao":
                    saida = "Rato comprido";
                    break;
                case "Hamster":
                    saida = "Rato anao";
                    break;
                case "Castor":
                    saida = "Rato aquatico";
                    break;
                case "Morcego":
                    saida = "Rato voador";
                    break;
                case "Rena":
                    saida = "Alce";
                    break;
                case "Panda":
                    saida = "Guaxinim";
                    break;
                case "Rinoceronte":
                    saida = "Dinossauro";
                    break;
                case "Avestruz":
                    saida = "Galinha";
                    break;
                case "Lhama":
                    saida = "Camelo";
                    break;
                case "Cavalo marinho":
                    saida = "Camarao";
                    break;
                case "Agua viva":
                    saida = "Polvo";
                    break;
                case "Ornitorrinco":
                    saida = "Mistura de pato com foca";
                    break;
                case "Lagosta":
                    saida = "Carangueijo";
                    break;
                case "Camarao":
                    saida = "Escorpiao";
                    break;
                case "Passaro com pescoco grande":
                    saida = "Pelicano";
                    break;
                case "Flamingo":
                    saida = "Cisne";
                    break;
                case "Anta":
                    saida = "Filhote de elefante";
                    break;
                case "Tamandua":
                    saida = "Bicho preguica";
                    break;
                case "Tatu":
                    saida = "Tartaruga";
                    break;
                case "Foca":
                    saida = "Pinguim";
                    break;
                case "Iguana":
                    saida = "Crocodilo";
                    break;
                case "Arara":
                    saida = "Periquito";
                    break;
            }

            System.out.println(saida);
        }
    }
}
Resolução em C++
#include "javalib.hpp"

int main()
{
    int n = nextInt();
    nextLine();
    for(; n > 0; n--)
    {
        std::string line = nextLine();

        if(line == "Lobo") std::cout << "Cachorro" << std::endl;
        else if(line == "Aguia") std::cout << "Gaviao" << std::endl;
        else if(line == "Golfinho") std::cout << "Tubarao" << std::endl;
        else if(line == "Orangotango") std::cout << "Chimpanze" << std::endl;
        else if(line == "Coala") std::cout << "Urso" << std::endl;
        else if(line == "Coruja") std::cout << "Papagaio" << std::endl;
        else if(line == "Moreia") std::cout << "
;Cobra Marinha" << std::endl;
        else if(line == "Arraia") std::cout << "ESPACONAVE" << std::endl;
        else if(line == "Tigre") std::cout << "Leao" << std::endl;
        else if(line == "Hipopotamo") std::cout << "Elefante" << std::endl;
        else if(line == "Capivara") std::cout << "Rato grande" << std::endl;
        else if(line == "Furao") std::cout << "Rato comprido" << std::endl;
        else if(line == "Hamster") std::cout << "Rato anao" << std::endl;
        else if(line == "Castor") std::cout << "Rato aquatico" << std::endl;
        else if(line == "Morcego") std::cout << "Rato voador" << std::endl;
        else if(line == "Rena") std::cout << "Alce" << std::endl;
        else if(line == "Panda") std::cout << "Guaxinim" << std::endl;
        else if(line == "Rinoceronte") std::cout << "Dinossauro" << std::endl;
        else if(line == "Avestruz") std::cout << "Galinha" << std::endl;
        else if(line == "Lhama") std::cout << "Camelo" << std::endl;
        else if(line == "Cavalo marinho") std::cout << "Camarao" << std::endl;
        else if(line == "Agua viva") std::cout << "Polvo" << std::endl;
        else if(line == "Ornitorrinco") std::cout << "Mistura de pato com foca" << std::endl;
        else if(line == "Lagosta") std::cout << "Carangueijo" << std::endl;
        else if(line == "Camarao") std::cout << "Escorpiao" << std::endl;
        else if(line == "Passaro com pescoco grande") std::cout << "Pelicano" << std::endl;
        else if(line == "Flamingo") std::cout << "Cisne" << std::endl;
        else if(line == "Anta") std::cout << "Filhote de elefante" << std::endl;
        else if(line == "Tamandua") std::cout << "Bicho preguica" << std::endl;
        else if(line == "Tatu") std::cout << "Tartaruga" << std::endl;
        else if(line == "Foca") std::cout << "Pinguim" << std::endl;
        else if(line == "Iguana") std::cout << "Crocodilo" << std::endl;
        else if(line == "Arara") std::cout << "Periquito" << std::endl;
    }
}

Deixe uma resposta

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