一、簡介
編程技巧斤斤是編寫正確程序的很小一部分,大部分內容還是前三節的主題:問題定義、算法設計及數據結構的選擇。
一個正確運行的程序,其需要斷言、順序控制結構、選擇控制結構及迭代控制結構。並且需要使用測試用例來保證程序的正確性。
二、習題
1、給定一個盛有黑豆子和白豆子的咖啡罐以及一大堆額外的黑豆子,重複一下過程,直到僅剩下一個豆子爲止。
從罐子中隨機取兩個豆子,如果顏色相同,則將他們扔掉並放入一個額外的黑豆子;如果顏色不同,則將白色豆子放回罐子,而將黑色豆子扔掉。
需證明該過程會終止,最後罐子黃總的豆子顏色與最初罐子中白豆子和黑豆子的數量有何函數關係?
解答:由於每一步都使得罐子中豆子減少1粒,故該過程能終止。我們每一步都從咖啡罐中拿掉0個或2個白豆子,所以白豆子的個數的奇偶性保持不變。因此,當且僅當罐子中最初的白豆子個數爲奇數時,最後留下的豆子纔可能是白色的。其他情況下最後的豆子都是黑色。