演算法 找出偽幣

2022-04-03 10:06:22 字數 977 閱讀 4055

【題目】   給你乙個裝有1 6個硬幣的袋子。1 6個硬幣中有乙個是偽造的,並且那個偽造的硬幣比真的硬幣要輕一些。你的任務是找出這個偽造的硬幣。為了幫助你完成這一任務,將提供一台可用來比較兩組硬幣重量的儀器,利用這台儀器,可以知道兩組硬幣的重量是否相同。比較硬幣1與硬幣2的重量。假如硬幣1比硬幣2輕,則硬幣1是偽造的;假如硬幣2比硬幣1輕,則硬幣2是偽造的。

【演算法】

class program

coin newcoin = new coin();

getcoin(list,ref newcoin);     //獲取最輕的硬幣

console.writeline("id of the light coin is ,its height is ", newcoin.id,newcoin.height);

console.read();

}///

/// 採用遞迴方式

///

/// 硬幣集合

/// 傳遞引數 用於返回目標硬幣

public static void getcoin(listlist,ref coin refcoin)

for (int j = mid; j < list.count; j++)

if (oneheight >= twoheight)

else

}else

else}}

}}///

/// 定義硬幣類,硬幣屬性:id、height

///

public  class coin

set

}private int height;

public int height

set

}public  coin()

public  coin(int id,int height)

如果硬幣的數量為奇數n,則可以分為(n-1)和1個。按照上述方法從(n-1)裡找出目標硬幣再和這乙個單獨硬幣比較。。

找出偽幣問題

簡介 找出偽幣問題 利用遞迴與分治演算法實現 題目 裝有 1 6個硬幣的袋子。1 6個硬幣中有乙個是偽造的,並且那個偽造的硬幣比真的硬幣要輕一些。我們要找出這個偽造的硬幣。我們有一台可用來比較兩組硬幣重量的儀器,利用這台儀器,可以知道兩組硬幣的重量是否相同.解決思路 將 16個硬幣分為 a,b兩堆,...

偽幣識別問題

偽幣識別問題。乙個袋子中裝有256 枚金幣,其中有一枚是偽幣,且已知偽幣比真的金幣要輕。現在給你一架天平,如何快速找出那枚偽幣?使用分治策略來對該問題進行求解,設計並實現相應的分治演算法。思路 採用二分法,將乙個金幣分為a b兩部分,分別計算a b部分的質量和,因為金幣為偶數個且偽幣比金幣要輕,所以...

找出陣列中重複的數字 演算法

給定乙個長度為 n 的整數陣列nums,陣列中所有的數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。注意 如果某些數字不在 0 n 1 的範圍內,或陣列中不包含重複數字,則返回 1 給定 nums 2 3,...