2010年03月04日星期四.sgu249 卡諾圖..
這個(gè)題是要求生成一個(gè)矩陣,要求這個(gè)矩陣的元素都只差1bit。
其實(shí)學(xué)過(guò)數(shù)字電路設(shè)計(jì)的應(yīng)該知道這就是要求生成一個(gè)卡諾圖。
對(duì)橫坐標(biāo)和縱坐標(biāo)都用gray碼,每個(gè)格子的值就是 (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?