{ }codelper
for 循环格式化输出P0022

乘法表的一行

给出整数 n。
i 从 1 到 9,按 "n x i = r" 的格式输出 9 行,r 是 n × i。
乘号是英文小写字母 x,x 和 = 的前后各有一个空格。
n 为 0 或负数时也用同样的格式输出(例如 -2 x 3 = -6)。

输入
一个整数 n(-1000 ≤ n ≤ 1000)
输出
9 行
样例 1 · stdin
3
stdout
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
main.py
输入(stdin)

运行时这些行会依次作为 input()/标准输入传入(运行中不会等待输入)。

$ 就绪

请在电脑上打开以编写和运行代码。在手机上可以查看题目和题解。

其他语言怎么写?查看各语言题解 · 8 种语言题解

第一个陷阱是最后一个数有没有包含进去。
Python 的 range(1, 10) 不含终点 10,所以是 1~9;写成 range(1, 9) 就少了乘 9 那一行。
C 系的 for (i = 1; i <= 9; i++) 用 <=,所以包含 9。
第二个陷阱是空格:拼接时很容易写成 "3x1=3"。
各语言的格式化写法不同:Python f"{n} x {i} = {n * i}",JS/TS 模板字符串 ` ${n} x ${i} = ${n * i} ,C# $"{n} x {i} = {n * i}",C 和 Java printf("%d x %d = %d\n", …)(Java 换行用 %n),C++ 用 <<` 逐个输出。
Craykon 还没有字符串插值,用 + 连接:n + " x " + i + " = " + n * i(* 比 + 先算,不加括号也会先算乘积)。

Pythonmain.py · 3 行
n = int(input())for i in range(1, 10):    print(f"{n} x {i} = {n * i}")
JavaScriptmain.js · 4 行
const n = Number(require("fs").readFileSync(0, "utf8").trim());for (let i = 1; i <= 9; i++) {  console.log(`${n} x ${i} = ${n * i}`);}
TypeScriptmain.ts · 5 行
import { readFileSync } from "node:fs";const n: number = Number(readFileSync(0, "utf8").trim());for (let i = 1; i <= 9; i++) {  console.log(`${n} x ${i} = ${n * i}`);}
JavaMain.java · 10 行
import java.util.Scanner; public class Main {    public static void main(String[] args) {        int n = new Scanner(System.in).nextInt();        for (int i = 1; i <= 9; i++) {            System.out.printf("%d x %d = %d%n", n, i, n * i);        }    }}
C#Main.cs · 13 行
using System; class Program{    static void Main()    {        int n = int.Parse(Console.ReadLine());        for (int i = 1; i <= 9; i++)        {            Console.WriteLine($"{n} x {i} = {n * i}");        }    }}
C++main.cpp · 9 行
#include <iostream> int main() {    int n;    std::cin >> n;    for (int i = 1; i <= 9; i++) {        std::cout << n << " x " << i << " = " << n * i << "\n";    }}
Cmain.c · 10 行
#include <stdio.h> int main(void) {    int n;    scanf("%d", &n);    for (int i = 1; i <= 9; i++) {        printf("%d x %d = %d\n", n, i, n * i);    }    return 0;}
Craykonmain.cray · 5 行
n = 控制台.读行().转数字();循环 (i = 1; i <= 9; i++){    控制台.输出(n + " x " + i + " = " + n * i);}