神奇的魔法表格:利用二进制揭秘你的秘密数字
神奇的魔法表格:利用二进制揭秘你的秘密数字
想象一下,你心中默念了一个 1 到 31 之间的数字,然后我展示给你 5 张表格,让你找出你的数字在哪一张表格中。接着,我就能通过‘心灵感应’准确地猜出你的数字!
这其实并不神秘,它利用了整数的二进制表示方法。例如数字 11 的二进制表示为 (1011),也就是 11 = 8 + 4 + 1。在魔法表格中,数字 11 会出现在表 1、2、4 中,因为 11 的二进制表示中有三个 '1'。因此,只需要将这三张表格中第一个数字相加就能得到 11。
现在,请你根据输入的数据,编程制作出这些魔法表格!
输入格式:
输入一个取值范围在 1-63(含 1 和 63)整数 n。
输出格式:
输出 n 内对应的魔法表格:
- 先输出第几个魔法数组(从 1 开始编号)
- 每 4 个数字一行,每个元素所占宽度为 5
代码示例 (C++)
#include <iostream>
using namespace std;
void createMagicTables(int n) {
int table[4][4] = {
{1, 2, 4, 8},
{16, 32, 3, 6},
{12, 24, 48, 17},
{34, 7, 14, 28}
};
int tableIndex = (n - 1) % 4 + 1;
cout << "Table " << tableIndex << ":" << endl;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (i == 3 && j == 3) {
cout << table[i][j] << endl;
} else {
cout << table[i][j] << " ";
}
}
}
}
int main() {
int n;
cin >> n;
createMagicTables(n);
return 0;
}
代码解析
在这段代码中,我们使用一个二维数组 table 表示魔法表格的四个子表。根据题目描述,每个子表中的数字都遵循一定规律。我们通过计算 n 对 4 取余再加 1,就能得到对应子表的索引 tableIndex。最后,我们按照输出格式依次输出对应的子表。
希望这段代码能帮助你理解如何制作魔法表格,并尝试用它来玩这个有趣的游戏!
原文地址: https://www.cveoy.top/t/topic/cFzE 著作权归作者所有。请勿转载和采集!