题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3257
思路:找规律,发现共输出7行,16进制按位与2进制的行数情况(第一行为001;第二行为010;第三行为100……)来确定是否输出“#”,或者“ ”。
AC代码:
#include <stdio.h>
int a[88][8];
int main(){
int T,n,i,j,k,t=1,c,p;
scanf("%d",&T);
while(T--){
scanf("%d",&c);
for(i=0;i<c;i++)
for(j=0;j<5;j++)
scanf("%x",&a[i][j]);
printf("Case %d:\n\n",t++);
for(i=0;i<7;i++){
for(j=0;j<c;j++){
p=1<<i;
for(k=0;k<5;k++){
if(a[j][k]&p)
printf("#");
else
printf(" ");
}
if(j<c-1)
printf(" ");
}
printf("\n");
}
printf("\n");
}
return 0;
}
/*
Case 1:
# # ## ## # # ## #
# # # # # # # #
# # ### # # ### # # ### # ## # ## #
##### # # # # # # # # # # # ## # # # ##
# # ##### # # # # # # # # # # # # #
# # # # # # # # # # # # # # # #
# # ### ### ### ### # # ### # ### ####
Case 2:
# #
# # # # # #
# # # # # # # # # #
### ###
# # # # # #
# #
#####
*/