锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

2022-2-24

时间:2023-11-14 03:37:02 二极管afe0505

七段码

题目描述

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

上图显示了七段码数码管的图表,共有数码管 7 段能发光的二 极管,分别标记为 a,b,c,d,e,f,g。

小蓝要选择一部分二极管(至少一个)发光来表达字符。设计字符 所有发光的二极管都需要连接在一起。

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

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

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

例如:b, f 发光,其他二极管不发光,因为发光 二极管没有连成一片。

小蓝能用七段码数码管表达多少种不同的字符? 80

一:枚举

亮1个==亮6个(任意一个):7(a,b,c,d,e,f,g)

全亮:1(abcdefg)

亮2个:10 (ab,af,bc,bg,cd,cg,de,eg,ef,fg)

亮3个:16 (abc,abg,afe,afg,bcd,bgf,bgc,bge,cdg,cde,cgf,cge,deg,def,egb,egf)

按照上面两个亮的顺序加一个,依次进行。不容易少。

亮4个:20 (abcd,abcg,abgf,abge,afed,afeg,afgc,afgb,bcde,bcdg,bgfe,bgfc,bgce,bged,cdge,cdgf,cdef,cgfe,degb,degf)

亮5个:19 后面越来越容易出错(abcde,abcdg,abcdf,abcge,abcgf,abgfe,abged,afedc,afedg,afegc,afgcd,afgcb,bcdef,bcdeg,bcdgf,bgfed,bgfec,cdgef,degbf)

共 7 7 1 10 16 20 19=80

代码:

#include  using namespace std; // a b c d e f g 与下面对应 // 1 2 3 4 5 6 7 #include//memset()函数 int e[7][7]={     
      {0,0,0,0,0,1,0},              {1,0,1,0,0,0,0,1},              {0,1,0,1,0,0,0,1},              {0,0,1,0,1,0,0              {0,0,0,1,0,1,1,1              {1,0,0,0,0,1,0,1,0,1},              {0,1,1,0,1,1,0}; int choose[7];//对一方案:若i在此方案中,choose[i]=1 int vis[7];//dfs中,记录顶点是否访问过的标志 void dfs(int k){   for(int i=0;i<7;i  ){//i和k相邻,i它包含在计划中,i没有访问     if(e[k][i]&&choose[i]&&!vis[i]){       vis[i]=1;       dfs(i);     }   } } int main() {   int i,j,k,x,ans=127;//2进制1111111   for(int i=1;i<=127;i  ){     memset(choose,0,sizeof(choose));     memset(vis,0,sizeof(vis));//清零     x=i;j=0;     while(x){       if(x%2) choose[j]=1;       x/=2;       j  ;//j记录位置     }     k=0;     while(choose[k]==0) k  ;////在计划的顶点找到一个包含在内的     vis[k]=1;     dfs(k);     for(j=0;j<7;j  ){       if(choose[j]&&vis[j]==0) break;     }     if(j<7) ans--;   }   cout<
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章