1. 程式人生 > >01Game——論excel軟體的強大

01Game——論excel軟體的強大

今天做了一道01Game題目,在程式設計很菜的情況下,我能做出來全靠excel了,感慨一波excel的強大!

題目描述

題目給出了一個名為Oand.txt的文字檔案,文字檔案的內容是0和1組成的字串。

題目解析

將文字內容複製到word中統計,發現一共有1369個0或1。因為1369不是7或8的倍數,所以很可能和ASCII編碼沒關。1369=37*37,而37*37符合二維碼的尺寸要求,我們猜測這些0、1字串可以組成一個正方形的二維碼。(二維碼生成原理參見連結:https://blog.csdn.net/ajianyingxiaoqinghan/article/details/78837864

將文字內容複製到記事本中,調節記事本的大小,使得每行有37個數字。然後進行了文字替換(“1”替換為“_”),結果如下圖(部分),果然是二維碼(0表示黑色的部分,_表示空白的部分)。

但是...怎麼把這個二維碼畫出來呢,上面的二維碼是識別不出來的。

我的解決方案是使用強大的excel把二維碼畫出來,首先需要把所有的0或1單獨放在一個單元格內(即一個單元格內只能有一個0或1,單元格的大小是37*37),這裡我使用到了excel的“分列”方法,參見連結:https://wenda.so.com/q/1483642840728877

然後將所有的數字1用“ ”替換,將所有的數字0所在的單元格填充為黑色,這裡使用到了excel的“條件格式”功能,參見連結:https://wenda.so.com/q/1363644861061368

通過以上兩步得到了二維碼,掃描二維碼得到了一個新的0和1組成的字串(長度為189,189/7=0,所以很有可能是ASCII編碼),對新的字串按照每7個一組進行ASCII編碼,得到了flag。

其他方法