資源簡介
java求解素數環經典問題,很好的算法設計,看看就知道了

代碼片段和文件信息
import?dataStructure.linearList.SeqList;???????????????????//順序表
import?dataStructure.linearList.SeqQueue;??????????????????//順序隊列類
import?dataStructure.linearList.linkedQueue;???????????????//鏈式隊列類
public?class?PrimeRing?
{
????public?PrimeRing(int?n)?
????{
????????SeqList?ring?=?new?SeqList(n);???//創建一個順序表存儲素數環
????????ring.add(new?Integer(1));??????????????????????????//1添加到素數環中
//????????SeqQueue?q?=?new?SeqQueue(n);???//創建一個隊列q
????????linkedQueue?q?=?new?linkedQueue();???//創建一個隊列q
????????for?(int?i=2;?i<=n;?i++)??????????????????????????????//2~n全部入隊
????????????q.enqueue(new?Integer(i));
????????System.out.println(q.toString());
?
????????int?i=0;
????????while?(!q.isEmpty())?
????????{
????????????int?k?=?q.dequeue().intValue();????????????????//出隊
????????????System.out.print(“dequeue:?“+k+“\t“);
????????????if?(isPrime(ring.get(i)+k))?????????????????????//判斷是否為素數
????????????{
????????????????i++;
????????????????ring.add(new?Integer(k));??????????????????//k添加到素數環中
????????????}
????????????else
????????????????q.enqueue(new?Integer(k));?????????????????//k再次入隊
????????????System.out.println(“隊列:?“+q.toString());
????????}
????????System.out.println(“素數環:?“+ring.toString());
????}
????
????public?boolean?isPrime(int?k)??????????????????????????//判斷k是否為素數
????{
????????if?(k==2)
????????????return?true;
????????if?(k<2?||?k>2?&&?k%2==0)
????????????return?false;
????????int?j=(int)Math.sqrt(k);???????????????????????//Math.sqrt(k)返回k的平方根值
????????if?(j%2==0)
????????????j--;???????????????????????????????????????//獲得測試范圍內的最大奇數
????????while?(j>2?&&?k%j!=0)
????????????j-=2;
????????return?j<2;
????}
????public?static?void?main(String?args[])
????{
?????????new?PrimeRing(10);
????}
}
/*
?{2?3?4?5?6?7?8?9?10}?
dequeue:?2??隊列:??{3?4?5?6?7?8?9?10}?
dequeue:?3??隊列:??{4?5?6?7?8?9?10}?
dequeue:?4??隊列:??{5?6?7?8?9?10}?
dequeue:?5??隊列:??{6?7?8?9?10?5}?
dequeue:?6??隊列:??{7?8?9?10?5?6}?
dequeue:?7??隊列:??{8?9?10?5?6}?
dequeue:?8??隊列:??{9?10?5?6?8}?
dequeue:?9??隊列:??{10?5?6?8?9}?
dequeue:?10?隊列:??{5?6?8?9}?
dequeue:?5??隊列:??{6?8?9?5}?
dequeue:?6??隊列:??{8?9?5?6}?
dequeue:?8??隊列:??{9?5?6?8}?
dequeue:?9??隊列:??{5?6?8}?
dequeue:?5??隊列:??{6?8?5}?
dequeue:?6??隊列:??{8?5?6}?
dequeue:?8??隊列:??{5?6}?
dequeue:?5??隊列:??{6}?
dequeue:?6??隊列:??{}?
素數環:?(1?2?3?4?7?10?9?8?5?6)
*/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1618??2008-02-13?15:54??例3.3?求解素數環問題\PrimeRing.class
?????文件???????2656??2008-07-21?16:06??例3.3?求解素數環問題\PrimeRing.java
?????目錄??????????0??2010-06-23?09:43??例3.3?求解素數環問題
-----------?---------??----------?-----??----
?????????????????4274????????????????????3
評論
共有 條評論