DEV Community

Beatriz Maciel
Beatriz Maciel

Posted on • Updated on

HackerRank #11 | DataTypes | 🇧🇷

Este problema pede para que você encaixe um número de input nas categorias byte, short, int e long.

O problema começa com o seguinte código:

class Solution{
    public static void main(String []argh)
    {
        Scanner sc = new Scanner(System.in);
        int t=sc.nextInt();

        for(int i=0;i<t;i++)
        {

            try
            {
                long x=sc.nextLong();
                System.out.println(x+" can be fitted in:");
                if (x >= -128 && x <= 127) System.out.println("* byte");

            //... your code here

            }
            catch(Exception e)
            {
                System.out.println(sc.next()+" can't be fitted anywhere.");
            }

        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Já vimos que o catch serve para pegar exceções. Nesse caso, ele retorna uma exceção de que o número não se encaixa em nenhuma categoria listada acima!

Tabela de tipos primitivos

Como o número máximo e mínimo desses tipos primitivos podem ser bem grandes (ver imagem acima), a solução que encontrei foi usando enums com .MIN_VALUE e .MAX_VALUE

O resultado final é esse aqui, dentro da main:

        Scanner sc = new Scanner(System.in);
        int t=sc.nextInt();

        for(int i=0;i<t;i++)
        {

            try
            {
                long x=sc.nextLong();
                System.out.println(x+" can be fitted in:");
                if (x >= -128 && x <= 127) System.out.println("* byte");
                if (x >= Short.MIN_VALUE && x <= Short.MAX_VALUE) System.out.println("* short");
                if (x >= Integer.MIN_VALUE && x <= Integer.MAX_VALUE) System.out.println("* int");
                if (x >= Long.MIN_VALUE && x <= Long.MAX_VALUE) System.out.println("* long");
            }
            catch(Exception e)
            {
                System.out.println(sc.next()+" can't be fitted anywhere.");
            }

        }
Enter fullscreen mode Exit fullscreen mode

=========

Referências:

============

Essa publicação faz parte de uma série de exercícios resolvidos em Java no HackerRank. Acesse a série completa:

Discussion (0)