Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje,vamos analisar valores e analisar se eles se classificam na categoria kaprekar . Vejamos mais informações com a explicação detalhada e sua resolução.
Modified Kaprekar Numbers -
Um número de Kaprekar é um número inteiro positivo com uma propriedade especial. Se você elevar ao quadrado, dividir o número em dois inteiros e somar esses inteiros, você terá o mesmo valor com o qual começou.
Por exemplo:
- n = 9
- d = 1
Se n = 9 e ele for elevado ao quadrado, n² = 81. Se separar os seus valores serão 8 + 1 = 9, o valor origianl de n. Logo, ele seria um número kaprekar.
Dados dois inteiros positivos p e q onde p é menor que q, escreva um programa para imprimir os números de Kaprekar modificados no intervalo entre p e q, inclusive. Se nenhum número de Kaprekar modificado existir no intervalo fornecido, imprima INTERVALO INVALIDO.
Vejamos o código a seguir:
function kaprekarNumbers(p, q) {
// Write your code here
let result = [];
for(let i = p; i <= q; i++) {
const squareString = (i * i).toString();
const num1 = squareString.substring(0, squareString.length/2);
const num2 = squareString.substring(squareString.length/2, squareString.length);
if (Number(num1) + Number(num2) === i) {
result = result.concat(i)
}
}
if (result.length === 0) {
console.log('INVALID RANGE')
} else {
console.log(...result);
}
}
Para cada número no intervalo, a função calcula o quadrado desse número e converte o resultado em uma string. Em seguida, divide a string ao meio para obter dois números, "num1" e "num2". Se a soma desses dois números for igual ao número original, então esse número é considerado um "número de Kaprekar".
Caso contrário, a função continua iterando através dos números até que tenha verificado todos os números no intervalo. Se nenhum número de Kaprekar for encontrado, a função imprime "INVALID RANGE". Caso contrário, a função imprime todos os números de Kaprekar encontrados.
O resultado será:
1
100
1 9 45 55 99
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)