题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝要用七段码数码管来表示一种特殊的文字。

595.七段码_开发语言

上图给出了七段码数码管的一个图示,数码管中一共有
7 段可以发光的二 极管,分别标记为 a,b,c,d,e,f,g。

小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。

例如:b 发光,其他二极管不发光可以用来表达一种字符。

例如 c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。

例如:a,b,c,d,e 发光,f,g 不发光可以用来表达一种字符。

例如:b,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。

请问,小蓝可以用七段码数码管表达多少种不同的字符?

运行限制

最大运行时间:1s
最大运行内存: 128M

#include <iostream>
using namespace std;

int BackTrace(int graph[][7], int visit[], int n, int i) {
int cnt = 1;
for (int j = 0; j < n; ++j) {
if (visit[j] == 0 && graph[i][j] == 1) {
visit[j] = 1;
cnt += BackTrace(graph, visit, n, j);
visit[j] = 0;
}
}
return cnt;
}
int main()
{
// 请在此输入您的代码
int graph[7][7] = {
{1, 1, 0, 0, 0, 1, 0},
{1, 1, 1, 0, 0, 0, 1},
{0, 1, 1, 1, 0, 0, 1},
{0, 0, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1},
{1, 0, 0, 0, 1, 1, 1},
{0, 1, 1, 0, 1, 1, 1}
};
int visit[7] = {0};
cout << BackTrace(graph, visit, 7, 0) / 2;
return 0;
}