入门 · 循环与输出

乘法表

读入 N,打印它的乘法口诀表,每行一条。循环很简单 — 但判题逐字符检查格式,这正是这道题要教的本事。

一句话答案输出 N 行 "N x i = 乘积"(i 从 1 到 N)—— 唯一真正的难点是空格,判题器逐字符比对输出。

题目

输入: 一个整数 N(1 ≤ N ≤ 10)。

输出: N 行,第 i 行恰好是 N x i = 乘积(空格如图)。

样例:N = 3 时:

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

你的解答

main.cpp — 你的解答
「运行我的输入」用的自定义输入

判题在浏览器本地运行。死循环会在 3 秒后被自动中断 —— 但还是确保每个循环都有出口。代码随打随存。

卡住了?提示

提示 1 — 循环不是难点

for (int i = 1; i <= n; i++) — 和1 到 N 求和一个骨架。真正的工作是每圈的那一行 cout。

提示 2 — 空格一个都不能少

cout << n << " x " << i << " = " << n * i << endl; — 注意引号里面的空格:" x " 和 " = "。这道题的失败案例大多是少了空格,不是逻辑错。

题解(先自己试试!)
#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;
}

按规格输出格式是真实而容易被低估的本领 — 日志、报表、判题机都这么要求。想要二维版(完整的 N×N 表)?那是嵌套循环 — 看星号金字塔,骨架不熟就先读循环指南(英文)。

深度解析

为什么这样做对

判题是按字节比对输出的,所以这题真正考的是格式。循环三行就写完,空格才是功课。

代价

输出 O(n²)——你不可能打印得比字符本身更快。

常见错法

  • 本站判题会去掉行尾空白,所以行尾多一个空格不会挂——但大多数在线判题器不会。真正必须精确的是词与词之间的空格。
  • endl 每输出一个值就刷一次缓冲。这里没错,但 '\n' 才是能扩展的习惯。

下一步

换成用前导空格排版:星号金字塔。

记住这两句

  • 判题比的是字节,不是观感。
  • 行尾空格是第一号静默失败源。
🐞 这段是错的 —— 点开,亲手让它挂一次

印成了 3x1=3——x 和 = 两边的空格没了

#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;
}