TransWikia.com

Como posso fazer o usuário digitar um número inteiro positivo e exibir a soma de seus digitos exemplo : 505 = 5+0+5 =10

Stack Overflow em Português Asked by João Victor Teixeira on January 4, 2021

let soma
let num1

num1 = prompt("Digite um número positivo")
if(num1 < 0){
console.log("Erro você tentou fazer uma conta com número negativo")
}
else if (num1 > 0){

}

One Answer

João, como o resultado do prompt é uma cadeia de caracteres (um texto), você pode usar expressões regulares para obter os números presentes. A classe de caractere "dígito" representa todos os 10 dígitos numéricos.

Para que essa expressão regular funcione da forma desejada, você precisa incluir a flag "g", pois "com este sinalizador, a pesquisa procura por todas as correspondências, já que, sem ela, apenas a primeira correspondência é retornada" (extraído do link sobre flag). Além disso, não usaremos nenhum quantificador, já que o objetivo é obter cada número individualmente.

Entendido isso, podemos aplicar a expressão regular na entrada utilizando o método match, que resulta em um vetor.

let entrada = prompt("Digite um número positivo");

if (entrada < 0) {
    console.error("Você tentou fazer uma conta com número negativo")
} else {
    let numeros = entrada.match(/d/g);
    console.log(numeros);
}

Com o vetor contendo os números digitados, podemos percorrê-lo para somar cada número presente.

let entrada = prompt("Digite um número positivo");

if (entrada < 0) {
  console.error("Você tentou fazer uma conta com número negativo")
} else {
  let numeros = entrada.match(/d/g);
  let soma = 0;
  
  for(let numero of numeros) {
    soma += parseInt(numero);
  }
  
  alert("A soma é igual a " + soma);
}

Perceba que usamos a função parseInt, pois os números digitados são obtidos como string. Em seguida, exibimos um alerta com o resultado do somatório.

Correct answer by Lucas Samuel on January 4, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP