有這樣一道奧數題:有一個小于500的二位數abc,對于這個二位數,甲乙丙丁有著不同的看法。甲說這個數能被2整除3次,乙說這個數能被二整除2次,丙說這個數能被7整除,丁說這個數的各位數字之和為15。現在甲乙丙丁中有一個人說了慌,到底誰說了慌呢?如果你找到了正確的答案請求出2'a+b-e的數值。
已知四人中有一人說了謊,那么說謊人計算出的數值肯定和其他二個人計算出來的數值不相同,那么是不是可以采用排除法來嘗試找出說謊的人呢?題目規定這個數小于500那么這個數的范圍在100-500之間,用編程讓計算機幫我們去一個個試算就能找出到底是誰說了謊。
編程時首先創建百位(a)、十位(b)、個位(c),還有甲乙丙丁四個變量,并且設置一個循環,將循環的范圍控制在100-500之間,每循環一次,將數值i增加1.
個位、十位、百位用整除取余的方法提取出來。甲乙丙丁按照題目的要求寫成數學表達式(如圖1)。

接下來我們就可以用假設法找出到底是誰說謊,假設甲說了謊,乙丙丁沒有說謊,那么我們需要在100-500之間查看有沒有存在某個數字只符合乙丙丁的條件,如果存在該數字的話便可以輸出正確答案,并確定說謊的是甲,然后根據要求計算出2*a+b-e的結果。

如果試算一輪沒有數字符合要求,便說明甲沒有說謊,就跳轉到第一種假設判斷乙是否說了謊……這樣用枚舉排除法加上循環計算的方法是最為簡單的,按照順序查找是否存在滿足條件的數字,滿足輸出,不滿足跳出(如圖2)。