.2 进阶题 - B 相生相克 分数 15 作者 陈越 单位 浙江大学 古代先民认为,天下万物皆由五类元素组成,分别是金、木、水、火、土,彼此之间存在相生相克的关系。 相生关系为:木生火,火生土,土生金,金生水,水生木。 相克关系为:金克木,木克土,土克水,水克火,火克金。 本题就请你编写程序,判断任意一对给定的元素之间的关系。 输入格式: 输入在一行中给出一个正整数 N(≤10),随后 N 行,每行给出 2 个正整数 A 和 B,为两种元素的编号。这里假设金、木、水、火、土的编号顺次为 1、2、3、4、5。 输出格式: 对输入的每一对 A 和 B,如果 A 生 B,则输出 A sheng B;如果 A 克 B,则输出 A ke B。反之亦然。
时间: 2024-02-11 08:07:25 浏览: 163
数据结构-浙江大学-陈越.zip
好的,那我来给你讲解一下这道题的思路。
首先,我们需要先建立一个五行相生相克的关系表,可以用二维数组来表示,如下所示:
```
int rel[6][6] = {
{0, 0, 0, 0, 0, 0},
{0, 0, 4, 1, 0, 2},
{0, 2, 0, 4, 1, 0},
{0, 0, 2, 0, 4, 1},
{0, 1, 0, 2, 0, 4},
{0, 4, 1, 0, 2, 0}
};
```
其中,rel[i][j] 表示第 i 个元素相对于第 j 个元素的关系,其中 0 表示无关系,1 表示相生,2 表示被相生,4 表示相克,8 表示被相克。例如,rel[2][4] = 1,表示木相对于土是生的关系。
接下来,我们读入每一对元素,判断它们之间的关系。如果 A 生 B,则输出 A sheng B;如果 A 克 B,则输出 A ke B。反之亦然。具体实现可以参考下面的代码:
阅读全文