文章

【GESP】C++二级真题 luogu-B3700 [语言月赛202301] 九九乘方表

GESP二级练习,多层循环和分支以及数学函数练习,难度★★☆☆☆。

luogu-B3700 [语言月赛202301] 九九乘方表

题目要求

题目描述

九九乘法表是数学学习中必须记忆的内容之一。

九九乘法表的前三行为:

1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

类似的,我们可以定义出九九乘方表,其前三行为:

1 ^ 1 = 1
2 ^ 1 = 2 2 ^ 2 = 4
3 ^ 1 = 3 3 ^ 2 = 9 3 ^ 3 = 27

a ^ b 的含义为 $a^b$,也就是 $b$ 个 $a$ 相乘。

例如:$3^4=3\times3\times 3\times 3 = 81$

请你输出九九乘方表的前 $n$ 行,每两项之间由一个空格隔开。

输入格式

输入一行一个整数 $n$。

输出格式

输出 $n$ 行,为九九乘方表的前 $n$ 行。

请注意:符号 ^ 和 = 前后均由一个空格分隔,每两项之间由一个空格隔开。

输入 #1

1
3

输出 #1

1
2
3
1 ^ 1 = 1
2 ^ 1 = 2 2 ^ 2 = 4
3 ^ 1 = 3 3 ^ 2 = 9 3 ^ 3 = 27

说明/提示

对于 $100\%$ 的测试数据,$1 \le n \le 9$。


题目分析

解题思路

  1. 读取输入的整数n。
  2. 使用一个外层循环从1到n遍历,模拟九九乘方表的每一行。
  3. 在外层循环中,使用一个内层循环从1到当前行号i遍历,计算i的j次方。
  4. 在内层循环中,输出i ^ j = i的j次方的结果,每两项之间用一个空格隔开。
  5. 在每一行的最后,输出换行符,准备输出下一行。

—·

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cmath>
#include <iostream>

using namespace std;
int main() {
    int n; // 定义变量n
    cin >> n; // 从输入流中读取n的值
    for (int i = 1; i <= n; i++) { // 从1到n遍历
        for (int j = 1; j <= i; j++) { // 从1到i遍历
            long long a = pow(i, j); // 计算i的j次方
            cout << i << " " << "^" << " " << j << " " << "=" << " " << a // 输出结果
                 << " ";
        }
        cout << endl; // 换行
    }
    return 0; // 退出程序
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页

luogu-”系列题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

bcqm-”系列题目可在编程启蒙题库进行在线评测。

本文由作者按照 CC BY 4.0 进行授权