))
摘要本文是一道經典編程題的題解題目要求從三個重量不同的球中找出唯一重量不同的那個球并給出了易于理解的 C 代碼實現(xiàn)。題目描述三個球A、B、C大小形狀相同且其中有一個球與其他球重量不同。要求找出這個不一樣的球。輸入格式輸入在一行中給出3個正整數(shù)順序對應球A、B、C的重量。輸出格式在一行中輸出唯一的那個不一樣的球。輸入樣例1 1 2輸出樣例C代碼部分實現(xiàn)#includeiostream// 引入標準輸入輸出頭文件usingnamespacestd;intmain(void)// 主函數(shù){inta,b,c;// 定義三個球的重量變量cinabc;// 讀入三個球的重量// 核心邏輯三個球中只有一個重量不同利用兩兩比較來定位// 如果A和B重量相同那么C必然是與它們不同的那個球if(ab){coutCendl;}// 走到這里說明A和B不同再判斷A和C是否相同// 如果A和C重量相同那么B就是唯一不同的那個球elseif(ac){coutBendl;}// 前兩個條件都不滿足A不等于B且A也不等于C// 這意味著A與另外兩個球都不同A就是那個唯一重量不同的球else{coutAendl;}return0;// 返回0表示程序正常結束}算法核心思路本題利用排除法思想通過兩兩比較即可定位唯一重量不同的球。首先比較A和B——若相等則C必然不同若不等則再比較A和C——若相等則B不同否則A不同。整個過程只需兩次比較時間復雜度為O(1)是解決三球問題的最高效方案。算法流程圖是否是否開始輸入 a, b, ca b ?輸出 Ca c ?輸出 B輸出 A結束