java菜鳥---------給出測量結果找假硬幣
阿新 • • 發佈:2018-12-31
* 有12枚硬幣其中有一枚是假的,其質量和真的不一樣,用天平進行測量
* 給出3次測量結果,求哪一枚是假的
* 三次結果
* 1234和5678天平水平
* 1239和56 10 11右邊比較重
* 給出3次測量結果,求哪一枚是假的
* 三次結果
* 1234和5678天平水平
* 1239和56 10 11右邊比較重
* 129 10和5678水平
public class leaarn1 { public static void main(String[] args) { //假設12枚硬幣質量都為一, int []a={1,1,1,1,1,1,1,1,1,1,1,1,}; //將每一硬幣假設成假的,從第一枚開始 for (int i = 0; i < a.length; i++) { //假的有兩種可能要麼重,要麼輕 for (int j = 0; j <2; j++) { //假設假的是輕的 if (j==0) { a[i]=0; //與測量結果進行比較, if ((a[0]+a[1]+a[2]+a[3]==a[4]+a[5]+a[6]+a[7])&& (a[0]+a[1]+a[2]+a[8]<a[4]+a[5]+a[9]+a[10]) &&(a[0]+a[1]+a[8]+a[9]==a[4]+a[5]+a[6]+a[7])) { System.out.println("第"+(i+1)+"枚硬幣是假的"); return;//如果和測量結果一樣即,執行結束,不在進行以後的運算 } } //假設假的硬幣是重的 if (j==1) { a[i]=2; if ((a[0]+a[1]+a[2]+a[3]==a[4]+a[5]+a[6]+a[7])&& (a[0]+a[1]+a[2]+a[8]<a[4]+a[5]+a[9]+a[10]) &&(a[0]+a[1]+a[8]+a[9]==a[4]+a[5]+a[6]+a[7])) { System.out.println("第"+(i+1)+"枚硬幣是假的"); return;//如果和測量結果一樣即,執行結束,不在進行以後的運算 } } a[i]=1;//如果這枚硬幣不是所要求即該枚硬幣,則質量重新為1 } } } }
不足的地方或者還有更優的解決方案請大佬指點。。。
一個努力成為程式設計師的學生