HDU-3257 Hello World!

本文提供了一道HDU 3257题目的解答思路及源代码,该题目要求通过解析一系列十六进制数来生成特定的二进制表示,最终输出由'#'和空格构成的图案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://acm.hdu.edu.cn/showproblem.php?pid=3257

  刚开始没有弄明白哪些十六进制数的意义,后来才恍然大悟,原来就是一个七行有无 '#' 二进制的表示,知道了这个后就比较简单了。
  代码如下:
 1 #include <cstring>
2 #include <cstdlib>
3 #include <cstdio>
4 using namespace std;
5
6 int num[85][10], base[10];
7
8 int main()
9 {
10 for( int i = 0; i < 10; ++i )
11 {
12 base[i] = ( 1 << i );
13 }
14 int T;
15 scanf( "%d", &T );
16 for( int tt = 1; tt <= T; ++tt )
17 {
18 int N;
19 scanf( "%d", &N );
20 for( int i = 0; i < N; ++i )
21 {
22 for( int j = 0; j < 5; ++j )
23 {
24 scanf( "%x", &num[i][j] );
25 }
26 }
27 printf( "Case %d:\n\n", tt );
28 for( int i = 0; i < 7; ++i )
29 {
30 for( int j = 0; j < N; ++j )
31 {
32 for( int k = 0; k < 5; ++k )
33 {
34 if( num[j][k] & base[i] )
35 printf( "#" );
36 else
37 printf( " " );
38 }
39 if( j != N - 1 )
40 printf( " " );
41 }
42 printf( "\n" );
43 }
44 printf( "\n" );
45 }
46 return 0;
47 }

  

转载于:https://www.cnblogs.com/Lyush/archive/2011/08/29/2158105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值