1 条题解

  • 0
    @ 2025-8-24 21:14:30

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Maxmilite
    **

    搬运于2025-08-24 21:14:29,当前版本为作者最后更新于2023-01-05 21:00:00,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    [语言月赛202301] 九九乘方表 题解

    Source & Knowledge

    2023 年 1 月语言月赛,由洛谷网校入门计划/基础计划提供。

    文字题解

    题目大意

    给定一个整数 nn,输出九九乘方表的前 nn 行,每两项之间由一个空格隔开。

    解析

    本题难点在于控制每行应当输出的内容。不难发现,第 ii 行需要输出 ii 个形如 x ^ y = z 的算式。

    我们使用一个二重循环控制这个流程。

    for (int i = 1; i <= n; ++i)
    	for (int j = 1; j <= i; ++j) {
    		// To do here
       	}
    

    对于第 ii 行,不难发现我们需要依次输出 i ^ 1 = ...i ^ 2 = ...、……、i ^ i = ...ii 个式子。

    因此在二重循环的括号内,我们应当填入以下内容:

    printf("%d ^ %d = %d ", i, j, ...);
    

    其中 ...iji ^ j 的值。这里可以自己写一个函数进行实现计算过程。

    int getPower(int x, int y) {
    	int res = 1;
    	for (int i = 1; i <= y; ++i) res *= x;
    	return res;
    }
    

    由于数据规模较小,因此这里暴力计算即可。

    因此在二重循环的括号内,我们可以填入以下内容:

    printf("%d ^ %d = %d ", i, j, getPower(i, j));
    

    需要注意符号之间的空格,以及算式两两之间的空格。

    视频题解

    完整代码请在视频中查看。

    • 1

    信息

    ID
    8223
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者