入门 · 循环与输出
乘法表
读入 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
你的解答
「运行我的输入」用的自定义输入
判题在浏览器本地运行。死循环会在 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;
}