HackerRank #19 | Loops II | 🇧🇷
Tags: java, loop, math, pow
Published: 2021-08-31 15:18:40

[Neste exercício](https://www.hackerrank.com/challenges/java-loops/problem), é necessário utilizar `ints` `a`, `b` e `n` para preencherem a seguinte equação:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/72xl48pkudv9pfihrkpn.jpg)

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
```

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
```

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();
```

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

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

- [HackerRank #6 | Scanner e End-of-file](https://dev.to/beatrizmaciel/hackerrank-6-scanner-e-endoffile-462c)
- [HackerRank #7 | Int to String / String to Int](https://dev.to/beatrizmaciel/hackerrank-7-int-em-string-e-vice-versa-4n1e)
- [HackerRank #8 | Date and Time](https://dev.to/beatrizmaciel/hackerrank-8-date-and-time-1f78)
- [HackerRank #9 | Static Initializer Block](https://dev.to/beatrizmaciel/hackerrank-9-static-initializer-block-48ha)
- [HackerRank #10 | Currency Formatter](https://dev.to/beatrizmaciel/hackerrank-10-currency-formatter-22oj)
- [HackerRank #11 | DataTypes](https://dev.to/beatrizmaciel/hackerrank-11-datatypes-2e9h)
- [HackerRank #12 | Strings Introduction](https://dev.to/beatrizmaciel/hackerrank-12-strings-introduction-2d1n)
- [HackerRank #13 | Substring Comparisons](https://dev.to/beatrizmaciel/hackerrank-13-substring-comparisons-57ha)
- [HackerRank #14 | Abstract Class](https://dev.to/beatrizmaciel/hackerrank-14-abstract-class-3h5d)
- [HackerRank #18 | BigInteger](https://dev.to/beatrizmaciel/hackerrank-18-biginteger-4jad)
- HackerRank #19 | Loops II
- [HackerRank #20 | String Reverse](https://dev.to/beatrizmaciel/hackerrank-20-string-reverse-nec)
- [HackerRank #23 | Instanceof keyword](https://dev.to/beatrizmaciel/hackerrank-23-instanceof-keyword-3lh6)
- [HackerRank #26 | Generics](https://dev.to/beatrizmaciel/hackerrank-26-generics-55p8)
- [HackerRank #27 | 1D Array](https://dev.to/beatrizmaciel/hackerrank-27-1d-array-5f80)
- [HackerRank #28 | Anagrams](https://dev.to/beatrizmaciel/hackerrank-28-anagrams-boi)
- [HackerRank #33 | Arraylist](https://dev.to/beatrizmaciel/hackerrank-33-arraylist-2lj1)
- [HackerRank #34 | Exception Handling Try / Catch](https://dev.to/beatrizmaciel/hackerrank-34-exception-handling-try-catch-144f)
- [HackerRank #36 | Exception Handling](https://dev.to/beatrizmaciel/hackerrank-35-exception-handling-44e)
- [HackerRank #37 | List](https://dev.to/beatrizmaciel/hackerrank-37-list-4gmj)
- [HackerRank #38 | SubArray](https://dev.to/beatrizmaciel/hackerrank-38-subarray-1693)
- [HackerRank #39 | HashSet](https://dev.to/beatrizmaciel/hackerrank-39-hashset-3jb3)
- [HackerRank #40 | Java Dequeue](https://dev.to/beatrizmaciel/hackerrank-40-java-dequeue--497h)