【蓝桥杯】17114残缺的数字

七段码显示器是一种常见的显示数字的电子元件,它由七个发光管组成:

图依次展示了数字 0∼90∼9 用七段码来显示的状态,其中灯管为黄色表示点亮,灰色表示熄灭。根据灯管的亮暗状态,我们可以用一个状态码(状态码是一个 77 位的二进制数字)来表示一个七段码,令灯管点亮时状态为 11,灯管熄灭时状态为 00,按照灯管 ABCDEFG 的顺序标识一个七段码,则数字 0∼90∼9 的状态码为:

数字状态码数字状态码
0111111051011011
1011000061011111
2110110171110000
3111100181111111
4011001191111011

小蓝有一个喜爱的数字,长度为 1818 位,每一位用一个七段码显示器来展示 (每位只能是 0∼90∼9,可以包含前导零),由于灯管故障,一些本该点亮的灯管处于了熄灭状态。例如,对于一个长度为 22 的数字来说,当两个七段码对应的状态码分别为: 10111111011111(高位)、11100111110011(低位)时,原本的数字可能会是: 6868、6969、8888、8989,有 44 种可能的值。

1818 个七段码显示器对应的状态码分别为:

0000011
1001011
0000001
0100001
0101011
0110110
1111111
0010110
0101001
0010110
1011100
0100110
1010000
0010011
0001111
0101101
0110101
1101010

其中每行表示一个七段码对应的的状态码(按照数字的高位到低位给出)。请你判断下小蓝喜爱的数字有多少种可能的值。

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // int sum=1;
  // string a[10]={"1111110","0110000","1101101","1111001","0110011","1011011","1011111","1110000","1111111","1111011"};
  // for(int i1=0;i1<18;i1++){
  //   string l;
  //   int c=0;
  //   cin>>l;
  //   for(int i=0;i<10;i++){//对1-9进行检查
  //     int f=1;//假设能变
  //     for(int j=0;j<7;j++){
  //       if(l[j]=='0')continue;
  //       if(l[j]=='1'&&a[i][j]=='0'){f=0;break;}//不能变退出循环
  //     }
  //     if(f)c++;//记录能变成几个数字
  //   }
  //   sum*=c;//相乘
  // }
  // cout<<sum;
  cout<<"254016000";
  return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值