AFF Education Construa seu Futuro

Aula 19 - Desafio (matemagician.java)

Desafio do Matemágico

Neste capítulo, vamos fazer um desafio prático que demonstra alguns conceitos matemáticos interessantes usando Java. O desafio envolve uma série de operações matemáticas que resulta em uma "mágica" matemática.

Este desafio vai ajudar a praticar:

Instruções do Desafio

Crie um arquivo chamado matemagician.java com as seguintes instruções:

Depois de criar o código:

Solução do Desafio

Abaixo temos o código completo com a solução do desafio:

public class matemagician {
    public static void main(String[] args) {
        // Crie uma variável do tipo int chamada myNumber e atribua valor diferente de 0 para ela.
        int myNumber = 7;

        // myNumber é número originário

        // Crie uma variável do tipo int chamada stepOne e atribua ela o valor igual ao valor original de myNumber multiplicada por ela mesma.
        int stepOne = myNumber * myNumber;
        System.out.println("stepOne = " + stepOne);

        // Crie a variável do tipo int chamada stepTwo e atribua um valor a ela igual a stepOne mais o número original de myNumber.
        int stepTwo = stepOne + myNumber;
        System.out.println("stepTwo = " + stepTwo);

        // Crie uma variável int chamada stepThree e atribua um valor igual a stepTwo dividido pelo número original (myNumber).
        int stepThree = stepTwo / myNumber;
        System.out.println("stepThree = " + stepThree);

        // Crie uma variável int chamada stepFour e atribua um valor igual a stepThree mais 17.
        int stepFour = stepThree + 17;
        System.out.println("stepFour = " + stepFour);

        // Crie uma variável int chamada stepFive e atribua um valor igual ao stepFour menos o número original.
        int stepFive = stepFour - myNumber;
        System.out.println("stepFive = " + stepFive);

        // Crie uma variável int chamada stepSix e atribua a ela valor igual a stepFive dividido por 6
        int stepSix = stepFive / 6;
        System.out.println("stepSix = " + stepSix);

        // Imprima o último valor computado (stepSix).
        System.out.println("Resultado final: " + stepSix);
    }
}

stepOne = 49

stepTwo = 56

stepThree = 8

stepFour = 25

stepFive = 18

stepSix = 3

Resultado final: 3

Explicação da "Mágica" Matemática

Vamos analisar o que acontece quando mudamos o valor de myNumber:

Se myNumber = 2:

Resultado final: 3

Se myNumber = 3:

Resultado final: 3

Se myNumber = 55:

Resultado final: 3

A matemática é mágica! Independentemente do valor inicial que atribuímos a myNumber (desde que não seja 0), o resultado final será sempre 3!

Isso pode ser demonstrado algebricamente:

  1. Se x = myNumber
  2. stepOne = x²
  3. stepTwo = x² + x
  4. stepThree = (x² + x) / x = x + 1
  5. stepFour = (x + 1) + 17 = x + 18
  6. stepFive = (x + 18) - x = 18
  7. stepSix = 18 / 6 = 3

Exercícios

Teste seus conhecimentos sobre operações matemáticas em Java:

1. No desafio matemagician, o que acontece se o valor de myNumber for zero?

2. Qual operação matemática é usada no passo stepOne do desafio?

3. Qual seria o valor de stepThree se myNumber fosse 10?

4. Complete o código abaixo para que ele calcule o valor de stepSix corretamente:

int myNumber = 5;
int stepOne = myNumber * myNumber;
int stepTwo = stepOne + myNumber;
int stepThree = stepTwo / myNumber;
int stepFour = stepThree + 17;
int stepFive = ________________;
int stepSix = stepFive / 6;

5. Por que o resultado final do desafio sempre será 3, independentemente do valor inicial (exceto 0)?

Exercícios de Aplicação AFF Education

Reforce o conteúdo desta aula com mais dois exercícios práticos:

1. Para extrair o algarismo das unidades de um número inteiro n, usa-se:

2. Sendo int n = 482;, quanto vale n / 100 (divisão inteira)?