首页 > 其他分享 >七段码

七段码

时间:2023-02-20 23:56:51浏览次数:32  
标签:字符 int 二极管 数码管 发光 七段

七段码

题目描述

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

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

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

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

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

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

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

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

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

运行限制

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

分析

纯纯回溯算法。 visit数组代表是否点亮。思路是一段的数量=该段自己亮+该段亮且连通分支的数量。 最后由于每种情况都被算了两遍,故而要除以2 【注:关于为什么被算了两遍: 比如说单纯看c亮a亮情况。在计算a亮时算了一遍,在计算c亮时又算了一遍 】

提交答案

#include <iostream>
using namespace std;

int BackTrack(int graph[][7],int visit[],int n,int i){
  int count=1;
  for(int x=0;x<n;x++){
    if(visit[x]!=1&&graph[i][x]!=0){
      visit[x]=1;
      count+=BackTrack(graph,visit,n,x);
      visit[x]=0;
    }
  }
  return count;
}
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};
  printf("%d",BackTrack(graph,visit,7,0)/2);
  return 0;
}

标签:字符,int,二极管,数码管,发光,七段
From: https://www.cnblogs.com/bujidao1128/p/17139456.html

相关文章

  • 关于获取系统时间以及绘制七段数码管
    版本一(通过输入数字绘制七段数码管):1importturtle2defdrawLine(draw):3turtle.pendown()ifdrawelseturtle.penup()4turtle.fd(40)5turtl......
  • 七段数码管控绘制
    代码如下:importturtle,datetimedefdrawGap():#绘制数码管间隔turtle.penup()turtle.fd(5)defdrawLine(draw):#绘制单段数码管drawGap()......
  • matlab 七段式轨迹 S型速度规划
    1、内容简介略609-可以交流、咨询、答疑2、内容说明S形速度规划相对于梯形速度规划其速度曲线会更加平滑,电机运行会更加平稳。常见的S曲线包括7段式加速度曲线,这种曲线计......