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?