Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 5: Prática

Desafio: Tabuada

Gerando tabuadas com loops e formatação

O desafio

Problema: gere a tabuada completa de qualquer número.

Solução básica

function tabuada(n: number): void {
console.log(`\n--- Tabuada do ${n} ---`);
for (let i = 1; i <= 10; i++) {
console.log(`${n} x ${i} = ${n * i}`);
}
}

tabuada(7);

// → --- Tabuada do 7 ---
// → 7 x 1 = 7
// → 7 x 2 = 14
// → ...
// → 7 x 10 = 70

Um for de 1 a 10 multiplicando n por i.

Versão formatada

Para alinhar os números bonitinho, use padStart:

function tabuadaFormatada(n: number): void {
console.log(`\n--- Tabuada do ${n} ---`);
for (let i = 1; i <= 10; i++) {
const multiplicador = i.toString().padStart(2);
const resultado = (n * i).toString().padStart(3);
console.log(`${n} x ${multiplicador} = ${resultado}`);
}
}

tabuadaFormatada(7);

// → --- Tabuada do 7 ---
// → 7 x 1 = 7
// → 7 x 2 = 14
// → 7 x 10 = 70

Versão interativa

import PromptSync from "prompt-sync";

const prompt = PromptSync();

const entrada = prompt("Digite um número para ver a tabuada: ");
const número = parseInt(entrada);

if (isNaN(número)) {
console.log("Número inválido!");
} else {
tabuadaFormatada(número);
}

Exercício extra

Gere as tabuadas de 1 a 10 de uma vez:

for (let n = 1; n <= 10; n++) {
tabuadaFormatada(n);
}

Referências

Testa o que você leu

3 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 3
O que `padStart(2)` faz numa string de um caractere?