Why so serious? --[NKU]schindlerlee

2010年03月04日星期四.sgu249 卡诺图..

2010年03月04日星期四.sgu249 卡诺图..
这个题是要求生成一个矩阵,要求这个矩阵的元素都只差1bit。
其实学过数字电路设计的应该知道这就是要求生成一个卡诺图。
对横坐标和纵坐标都用gray码,每个格子的值就是 (x << offset) + y
 1 
 2 int cm, cn, m, n;
 3 int main()
 4 {
 5     int i, j;
 6     scanf("%d%d"&n, &m);
 7     cm = 1 << m;
 8     cn = 1 << n;
 9     for (i = 0; i < cn;) {
10         for (j = 0; j < cm;) {
11             printf("%d ", (i << m) + j);
12             j ^= 1;
13             printf("%d ", (i << m) + j);
14             j ^= (j ^ (j - 1)) + 1;
15         }
16         i ^= 1;
17         putchar(10);
18         for (j = 0; j < cm;) {
19             printf("%d ", (i << m) + j);
20             j ^= 1;
21             printf("%d ", (i << m) + j);
22             j ^= (j ^ (j - 1)) + 1;
23         }
24         i ^= (i ^ (i - 1)) + 1;
25         putchar(10);
26     }
27     return 0;
28 }
29 

posted on 2010-03-04 12:56 schindlerlee 阅读(1149) 评论(0)  编辑 收藏 引用 所属分类: 解题报告


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理