DEV Community

Beatriz Maciel
Beatriz Maciel

Posted on • Edited on

1 1

HackerRank #19 | Loops II | 🇧🇷

Neste exercício, é necessário utilizar ints a, b e n para preencherem a seguinte equação:

Alt Text

Além dos números a, b e n, o Scanner pedirá também um número q, que indica a quantidade de linhas de output. Sendo assim, um exemplo de input seria:

2
3 6 9
4 8 12
Enter fullscreen mode Exit fullscreen mode

Sendo q = 2.
Na primeira linha: a = 3, b = 6 e n = 9.
Na segunda linha: a = 4, b = 8, n = 12.
Temos apenas duas linhas porque estabelecemos que q delimita o número de linhas. Neste caso, 2.

O output desse mesmo exemplo será:

9 21 45 93 189 381 765 1533 3069
12 28 60 124 252 508 1020 2044 4092 8188 16380 32764
Enter fullscreen mode Exit fullscreen mode

Os resultados acima respeitam a equação. Para resolver esse problema o passo a passo é:

  • Fazer Scanner nos números de entrada (q, a, b e n)
  • Fazer uma iteração dentro de um for, de forma que seja menor do que n

Lembra que, na equação acima, o último parêntese tem 2 elevado a n-1? Isso significa que precisamos usar n como parâmetro que define a quantidade de resultados (de colunas, no caso).

  • Usar o método Math.pow, que faz a elevação de um número por outro. Passamos o (int) antes porque, por parâmetro, o Math.pow devolve um double e, neste caso, queremos um int.
  • Usamos o System.out.print(a + " ");, sem o println, porque queremos que caibam todos na mesma linha.

=========

O código final fica assim dentro da main:

        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        for(int i=0; i < t ; i++) {
            int a = in.nextInt();
            int b = in.nextInt();
            int n = in.nextInt();

            for(int z = 0; z < n; z++){
                a = a + (int) Math.pow(2, z) * b;
                System.out.print(a + " ");
            }

            System.out.println("");
        }
        in.close();
Enter fullscreen mode Exit fullscreen mode

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

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

Top comments (0)

Great read:

Is it Time to go Back to the Monolith?

History repeats itself. Everything old is new again and I’ve been around long enough to see ideas discarded, rediscovered and return triumphantly to overtake the fad. In recent years SQL has made a tremendous comeback from the dead. We love relational databases all over again. I think the Monolith will have its space odyssey moment again. Microservices and serverless are trends pushed by the cloud vendors, designed to sell us more cloud computing resources.

Microservices make very little sense financially for most use cases. Yes, they can ramp down. But when they scale up, they pay the costs in dividends. The increased observability costs alone line the pockets of the “big cloud” vendors.

Retry later