Insper 2025.2Questão 29de 60Uma das funções em certo programa é denominada modificaNumero. Essa função recebe uma variável que armazena um número
MatemáticaOperações numéricas
Uma das funções em certo programa é denominada modificaNumero. Essa função recebe uma variável que armazena um número inteiro e modifica esse número por outro, de acordo com as seguintes regras:
- Cada algarismo par desse número que for maior ou igual a 2 é substituído pelo algarismo que é igual à sua metade;
- Cada algarismo ímpar desse número é substituído pelo algarismo que é 1 unidade menor;
- Cada algarismo zero (0) desse número é substituído pelo algarismo 9;
- A cada execução da função modificaNumero, cada algarismo é substituído uma única vez;
- Um zero (0) à esquerda de um número não é armazenado na variável.
Por exemplo, considere que a variável p armazene o número 112140. A execução de modificaNumero(p) irá alterar o valor armazenado em p para 001029, e como zero à esquerda não é armazenado, então, após a execução da função, a variável p passará a conter o número 1029. Uma segunda execução em sequência de modificaNumero(p) irá alterar 1029 para 0918, ou seja, a variável p passará a conter o número 918. Uma terceira execução em sequência de modificaNumero(p) irá alterar a variável p de 918 para 804. Portanto, após 3 execuções em sequência de modificaNumero(p), o valor armazenado na variável p mudou de 112140 para 804.
Considere que a variável p contenha o número 4588291134. Quantas vezes em sequência a função modificaNumero(p) deve ser executada para que o valor armazenado em p fique menor do que 100?
- Alternativa A, a correta: 13.Resposta
- Alternativa B: 14.
- Alternativa C: 15.
- Alternativa D: 16.
- Alternativa E: 17.
A estratégia:
Aplicar as regras algarismo por algarismo, sem pular etapa, e contar as execuções. Zeros à esquerda somem.
As execuções:
| Execução | Número |
|---|---|
| início | 4588291134 |
| 1 | 2444180022 |
| 2 | 1222049911 |
| 3 | 111928800 |
| 4 | 814499 |
| 5 | 402288 |
| 6 | 291144 |
| 7 | 180022 |
| 8 | 49911 |
| 9 | 28800 |
| 10 | 14499 |
| 11 | 2288 |
| 12 | 1144 |
| 13 | 22 |
Na 13ª execução o número fica menor que 100.
Como os números encolhem:
Todo 1 vira 0, e o 0 da frente some. É por isso que o número perde algarismos: na execução 3, o 1 da frente de 1222049911 vira 0 e some; na 4, os três 1 da frente de 111928800 somem.
A armadilha:
Esquecer que 0 vira 9, e não some, quando está no meio do número. Só o zero à esquerda desaparece.
Confere com o gabarito oficial do Insper. Ver o caderno da banca
