c語言:1000瓶水,有一瓶是有毒的,現共有10只老鼠,怎麼判斷毒水?
問題:1000瓶水,其中有一瓶是有毒的,一只老鼠喝下毒水會一天之後死亡,現在共有10只老鼠,怎麼判斷哪一瓶水是毒水?
分析:2^10=1024,則可以考慮利用二進制求解
解:給1000瓶水依次標號1至1000,將10只老鼠從右向左排成一列,第一瓶水讓右邊第1只老鼠喝,第2瓶水讓第2只老鼠喝,第3瓶水讓第1,2只老鼠喝,則第4瓶水讓第3只老鼠喝,......第1000瓶水依次讓第4,6,7,8,9,10只老鼠喝,記死亡的老鼠為1,未死亡的老鼠為0,按照二進制表示數的方法求出這個數,就知道哪瓶是毒水