Time To Get Up(枚举)

xiaoxiao2021-02-28  142

Problem Description Little Q's clock is alarming! It's time to get up now! However, after reading the time on the clock, Little Q lies down and starts sleeping again. Well, he has  5  alarms, and it's just the first one, he can continue sleeping for a while. Little Q's clock uses a standard 7-segment LCD display for all digits, plus two small segments for the '':'', and shows all times in a 24-hour format. The '':'' segments are on at all times. Your job is to help Little Q read the time shown on his clock.   Input The first line of the input contains an integer  T(1T1440) , denoting the number of test cases. In each test case, there is an  7×21  ASCII image of the clock screen. All digit segments are represented by two characters, and each colon segment is represented by one character. The character ''X'' indicates a segment that is on while ''.'' indicates anything else. See the sample input for details.   Output For each test case, print a single line containing a string  t  in the format of  HH:MM , where  t(00:00t23:59) , denoting the time shown on the clock.   Sample Input 1 .XX...XX.....XX...XX. X..X....X......X.X..X X..X....X.X....X.X..X ......XX.....XX...XX. X..X.X....X....X.X..X X..X.X.........X.X..X .XX...XX.....XX...XX.   Sample Output 02:38   解题思路: 通过枚举出0--9个数,然后分析输入的与枚举出来的关系编写代码! 具体代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; char str[8][22]; int shu[10][7][4]= { 0,1,1,0, 1,0,0,1, 1,0,0,1, 0,0,0,0, 1,0,0,1, 1,0,0,1, 0,1,1,0, 0,0,0,0, 0,0,0,1, 0,0,0,1, 0,0,0,0, 0,0,0,1, 0,0,0,1, 0,0,0,0, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,1,1,0, 1,0,0,0, 1,0,0,0, 0,1,1,0, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,1,1,0, 0,0,0,0, 1,0,0,1, 1,0,0,1, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,0,0,0, 0,1,1,0, 1,0,0,0, 1,0,0,0, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,1,1,0, 0,1,1,0, 1,0,0,0, 1,0,0,0, 0,1,1,0, 1,0,0,1, 1,0,0,1, 0,1,1,0, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,0,0,0, 0,0,0,1, 0,0,0,1, 0,0,0,0, 0,1,1,0, 1,0,0,1, 1,0,0,1, 0,1,1,0, 1,0,0,1, 1,0,0,1, 0,1,1,0, 0,1,1,0, 1,0,0,1, 1,0,0,1, 0,1,1,0, 0,0,0,1, 0,0,0,1, 0,1,1,0 }; void ton(int n) { for(int k=0;k<10;k++) { int kk=0;//检测数是否被找到 for(int i=0;i<7;i++) { for(int j=n;j<n+4;j++) { if((shu[k][i][j-n]==0&&str[i][j]=='.')||(shu[k][i][j-n]==1&&str[i][j]=='X')) continue; kk=1;break; } if(kk==1) break ; } if(kk==0) {printf("%d",k);return ;} } } int main() { int t; scanf("%d",&t); while(t--) { for(int i=0;i<7;i++) scanf("%s",str[i]); ton(0); ton(5); printf(":"); ton(12); ton(17); printf("\n"); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-29999.html

最新回复(0)