Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite, sou novo em JavaScript e queria começar tirando umas dúvidas com exercícios básicos de matemática, por exemplo esse de mostrar na tela os quadrados dos números de uma lista, o que eu to fazendo de errado? Pq só aparece o primeiro número
function quadrado(array) {
var lista = [],
x = array.length;
for (var j=0; j<x; j++){
lista = Math.pow(array[j], 2);
return lista;
}
}
alert(quadrado([0,3,6]));
Outra dúvida, como eu faço fatorial de um número n escolhido? Codificação bem básica mesmoMuito legal, @wootzor! Gostei mesmo
Queria tirar outra dúvida agora, como ficaria esse sem recursividade? Ele calcula a soma dos inteiros de um número, ex:
n = 4, a soma é 1+2+3+4 = 10
function somar(n){
if (n === 0) {
return 0;
} else {
return n + somar(n - 1);
}
}
console.log(somar(4));
E esse aqui, queria dar uma quantidade, e com essa quantidade contar os primeiros ímpares, por exemplo se n=3, imprimisse 1,3,5
<div class = "container"> <input placeholder="Número de inteiros" id="inteiros"/>
<button id= "verificar"> Mostrar</button> <div>
function impares(n){
var n = document.getElementById("inteiros");
var x = parseInt(n.value);
for (var i = 1; i <= n.value * 2; i = i+2){
i = 0;
while (i <= n*2){
i = i+2;
}
}
}
document.getElementById("verificar").addEventListener("click", impares);Atenção que algoritmos recursivos não são a solução de "todos os problemas".
Não percebi bem se queres somar os algarismos de um número ou se todos os números até um determinado valor. Se for a segunda opção, basta um ciclo simples:
function somar(n) {
var soma = 0;
if (n === 0)
{
return 0;
}
else
{
for (var i = 1; i <= n; i++)
{
soma += i;
}
}
return soma;
}
Já agora, uma solução bem mais simples para o problema dos quadrados usando o método [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map):
var lista = [0, 3, 6].map(function(n) {
return Math.pow(n, 2);
});
O que a função map faz é aplicar uma função definida por ti a cada elemento de um *array* e devolver um novo *array* com o resultado.Muito obrigado, parceiro. Tem sido muito útil. Você tem alguma ideia em relação ao de mostrar os números impares?
>
Em 4/6/2017 at 13:11, gorilla disse:
E esse aqui, queria dar uma quantidade, e com essa quantidade contar os primeiros ímpares, por exemplo se n=3, imprimisse 1,3,5
Vê se isto ajuda e tenta entender a lógica:
function impares()
{
var n = parseInt(document.getElementById("inteiros").value);
var impares = [];
var qtdImpares = 0;
for (var i = 1; qtdImpares < n; i += 2)
{
impares.push(i);
qtdImpares++;
}
document.getElementById("resultado").innerHTML = impares.join(" ");
}
A lógica do teu código está certa, faltando apenas dois ajustes:
-
A variável lista é um array, por isso se lhe quisermos adicionar valores devemos usar a função push.
-
Se devolveres a lista dentro do ciclo, ele só vai ser executado uma vez, i. e., para a primeira posição do array.
Dito isto, segue o código:
{ if (num === 0 || num === 1) //convenção {