Principiante · Bucles y salida

Tabla de multiplicar

Lee N e imprime su tabla de multiplicar, una línea por fila. El bucle es fácil — pero el juez compara el formato carácter a carácter, y exactamente eso enseña este problema.

En una fraseImprime N líneas de "N x i = producto" para i de 1 a N: la única dificultad real son los espacios, porque el juez compara la salida carácter a carácter.

El problema

Entrada: un entero N (1 ≤ N ≤ 10).

Salida: N líneas; la línea i dice exactamente N x i = producto (con los espacios tal cual).

Ejemplos:

Para N = 3:

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9

Tu solución

main.cpp — tu solución
Entrada personalizada para «Ejecutar mi entrada»

La corrección corre en tu navegador contra pruebas ocultas. Un bucle infinito se corta a los 3 segundos — aun así, asegúrate de que todo bucle tenga salida. Tu código se guarda solo mientras escribes.

¿Atascado? Pistas

Pista 1 — el bucle es la parte fácil

for (int i = 1; i <= n; i++) — el mismo esqueleto de la Suma de 1 a N. El trabajo real es una línea de cout por vuelta.

Pista 2 — los espacios, al detalle

cout << n << " x " << i << " = " << n * i << endl; — nota los espacios dentro de las cadenas: " x " y " = ". La mayoría de intentos fallidos aquí son espacios que faltan, no lógica.

Solución (¡inténtalo primero!)
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cout << n << " x " << i << " = " << n * i << endl;
    }
    return 0;
}

Imprimir con formato exacto es una habilidad real y subestimada — logs, informes y jueces la exigen. ¿La versión 2D (la tabla N×N completa)? Eso son bucles anidados — mira la Pirámide de asteriscos, y la guía de bucles si el esqueleto aún no te firma cómodo.

Análisis profundo

Por qué funciona

El juez compara la salida byte a byte, así que este problema va de formato. El bucle es trivial; el espaciado es la lección.

El coste

Salida O(n²): no puedes imprimir más rápido que los caracteres que emites.

Dónde falla

  • Este juez recorta los espacios finales, así que aquí sobreviven; la mayoría de jueces no los recortan. Lo que sí debe ser exacto es el espaciado entre palabras.
  • endl vacía el búfer en cada valor. Aquí es correcto, pero '\n' es el hábito que escala.

Siguiente paso

Formatear con espacios a la izquierda: Pirámide de asteriscos.

Dos cosas para recordar

  • Los jueces comparan bytes, no apariencia.
  • El espacio final es el fallo silencioso número uno.
🐞 Esta versión falla: ábrela y pruébala

Imprime 3x1=3: faltan los espacios alrededor de x e =

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cout << n << "x" << i << "=" << n * i << endl;
    }
    return 0;
}