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
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.
endlvací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;
}