發表文章

目前顯示的是 2017的文章

[程式設計] UVa 介紹,以及 UDebug 和其他輔助工具的介紹

圖片
UVa 是一個線上解題系統 (online judge system),依 維基百科 的說法,它是西班牙瓦雅多利大學教授Miguel Ángel Revilla在1995年所創建的一個自動化線上的評測系統。 UVa 目前收錄了數千多道題目,大部分都需要一點演算法基礎才能解得出來。網站上提供了 C/C++,Java,Pascal 以及 Python 的評測環境。UVa 目前收錄了許多國際賽 ICPC 的題目。是個適合練功的好所在

[C_CH13-中] 坑洞路面

圖片
這題是 e-tutor 的題目,網址請點 這兒 。 分類上屬於中等。我個人認為這個題目的風格就像是大型比賽的風格了。乍看之下會沒有頭絮,要仔細思考後,才能發現解題的線索。 題目檢視 先看看題目,請配合下圖服用囉。 圖中土色的部分,代表「地表面」。 藍色的部分,代表「積水」。 最上面那排數字,代表那一格的「高度」。 最下面那排數字,代表「位置」。 所以合起來就是第 0 個位置,高度為 3, 0 積水。 第1個位置,高度為2,積水 1 格。 路面積水的示意圖 這題的輸出、以及輸出如下圖所示: 輸入以及輸出的範列 我們要輸出「總」積水量,以前述的範例來說,就是要輸出 1 + 2 + 2+ 1= 6。

[程式設計] UVa 13178 - Is it multiple of 3? 以及工程師心態

圖片
題目說明 Is it multiple of 3 是 UVa 上的題目,算是簡單題,但要求在 1 秒內得到結果。 它的翻譯可以看一下  lucky 貓的說明 。 乍看之下,這題蠻難的。 簡單來說,就是給一個數字,看看它是不是 3 的倍數。 這題難在於數字會很大,直覺看來,是不可能在 1 秒內得到結果。 我們先來看看這題數字的規則: 題目會給一個數字 n,然後你要湊出對應的數字 x,接著判斷 x 是不是 3 的倍數。 底下是範例 所以你可以推出來,當 n = 99 時,數字是有多大了 (如下圖囉) n == 99 時,x 的值

Android Studio 的 hotkey

Android Studio 是 Google 和 JetBrains 合作出品的 Android 開發工具。JetBrains 的工具有一個特性,就是有一堆超好用的快速鍵可以增加生產力。 舉例來說,底下這篇文章中就介紹了好些可以讓我們少打許多字的工具,真的讓寫程式快樂許多。 讓代碼飛! 我也整理了一些快速鍵的用法,讓大家參考: Android Studio hot key from 毓驥 鍾

Android 如何產生 QR Code

圖片
這篇文章說明如何使用 ZXing library 來產生 QR-Code。 應用程式執行的畫面如下,可以看出有一個 QRCode,而且 QRCode 的中間還有一個 logo。QRCode 是如何產生的呢?是讀取最上方 EditText 中的文字所產生的。 如果使用 QR code android 這幾個關鍵字來搜尋 Google 的話,就會發現大部分文章都指向 ZXing (Zebra Crossing) 這個函式庫。不過 ZXing 並不是針對 Android 設計的,要把 ZXing 導入到 Android 要花費一番的心力。 好在網路上已經有神人寫好的 Android 對應的 ZXing 函式庫了,所以我們直接套用即可。這套函式庫叫  zxing-android-embedded  ,看名字就知道和 ZXing 有關係了。 zxing-android-embedded 可以產生 QRCode,也可以掃描 QRCode,這篇文章說明如何產生 QRCode。

[程式設計][C_OT43-易] 繪製菱形

圖片
簡介 題目來源:e-tutor 平台 [C_OT43-易] 繪製菱形 繪製菱形這題只要會迴圈指令,就可以解出。但因為邏輯上較為複雜,許多初學者會在這題卡住很久。 這篇文章分析了這題的寫法,但請注意,這篇有提示的程式碼,但沒有「 完整 」的程式碼。不過若是看了整篇的文章,應該是可以組合出完整的程式碼才對。 話不多說,來看看題目 輸入一個整數 H,印出對應的菱形。 例如 H=2時,菱形如下圖: H=3 時,菱形如下圖:

[VIM] text object

圖片
VIM的 text object 代表的是一群文字。而VIM中使用 a 以及 i 這兩個指令來操作 text object。 熟悉 text object 的使用方式,可以讓寫code時輕鬆許多。 例如  a rray[15] = 20; 若想要把[]中的15刪掉,那至少有兩種方法: 1. 把游標移到1 (按 f1),然後按2x。2x是刪掉兩個字元的意思。 2. 把游標移到[ (按 f[),然後使用  ci[ 。c 是修改 (change)的意思,i 代表 inner,所以 i[ 代表”在 [] 中”的意思。所以整個合起來的意思是,在 [] 中做修改的意思。 法1及法2的差別在於方法2會把[]中的東西刪掉,而且會進入insert mode,而法1還是維持在 normal mode中。

[程式設計] [C_MM04-易] 負數的餘數

源起  [C_MM04-易] 計算總和、乘積、差、商和餘數 這題是 e-tutor 上面的一個題目,它的難度被歸類到中間等級。 我猜很多人解不出來的原因是因為題目看起來該死的簡單,但怎麼寫就是錯的,最後就放棄了。 事實上,這個題目藏了一個很重要的hint,解開這個題示,大約就可以寫出這題了。

[程式設計] [C_MM05-易] 計算正方形面積以及浮點數的四捨五入

底下主要想解說 C++ 在浮點數運算上,要如何做到「小數點底下 x 位,四捨五入」。所使用的題目是 e-tutor 的  [C_MM05-易] 計算正方形面積 。 請注意,這兒講的四捨五入,只能在「正數」中使用,遇到負數要另外的解法。 題目 題目簡單來說是這樣的,讓使用者輸入一個「大於0的數」(用浮點數儲存),然後計算「正方形的面積,並輸出」。 所以就是輸出「平方值」即可。 但麻煩在於,這題要求輸出時,要滿足取到「小數點底下一位,並且四捨五入」!

[VIM] 刪除文字的技巧

圖片
在 VIM 中,要刪除一個字,通常使用 cw 或是 dw 這兩個指令。 但這兩個指令都有一個缺點,就是要刪掉這個字的話,游標要剛好在字的前面才可以。以下圖為例,游標在 printf 的中間,所以就會刪掉 intf,但留下 pr 囉。

[不負責任指南]大學新鮮人的電腦採購

圖片
前言--上大學囉,要買什麼電腦? 將將將…相信有許多同學已經是「準」大學新鮮人了。就算不是,七月指考後,也差不多就是了。 既然已經進入了「資訊時代」(現在連國中生都要開始學程式設計了,你說說看,這誇不誇張?),上大學總是要配個電腦的啦。 那麼你或者會開始想,我要買桌機呢?還是筆電?要組裝的電腦?還是品牌電腦?要買什麼規格的電腦呢? 這篇文章給你一些意見,讓你參考囉。