本文小編為大家詳細介紹“java經典算法實例代碼分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“java經典算法實例代碼分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
創新互聯主要從事成都網站制作、成都做網站、網頁設計、企業做網站、公司建網站等業務。立足成都服務五華,十多年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18982081108
正值金九銀十好時節,又到了刷題月。
題目1:
求s = a + aa + aaa + aaaa + aa...a的值,其中a是一個數字。例如2 + 22 + 222 + 2222 + 22222(此時共有5個數相加),幾個數相加有鍵盤控制。
題目2:
一個數如果恰好等于它的因子之和,這個數就稱為"完數"。例如6=1+2+3。編程找出1000以內的所有完數。
找出規律,222 = 22*10+1;2222 = 222*10+2,其實就是后一個數 都在第一個數(start)上加start+10*num,其中num為上一次的疊加數。
看這題,首先要知道一件事,什么是完數,知道完數的算法規則,其實就能很清晰的計算出1000以內符合規則的數字,對吧。
那什么是完數?完數其實就是一個數如果恰好等于它的因子之和,這個數就稱為"完數"。比如6,所以所有因子[1,2,3]相加(1+2+3)就等于6.
知道了規則,那其實就成功了百分之八十,因為我之前有講過求一個數的所有因子。
題1AC代碼:
public static int sumNums(int num, int count) { //記錄輸入的num int start = num; //記錄和 int sum = 0; for (int i = 1; i <= count; i++) { sum += num; //計算出下一個數字。 num = start + num * 10; //丟棄最后一個“+”號 if (i == count) { System.out.print(num); } else { System.out.print(num + "+"); } } System.out.println("=" + sum); return sum; }
題2AC代碼:
/** * 計算1-1000之內的所有完數 */ public static List<Integer> ws() { //統計完數 List<Integer> list = new ArrayList<>(); //記錄一個數的因子之和 int sum; //循環1-1000之內的數 for (int i = 1; i <= 1000; i++) { //判斷該數是否為一個完數 sum = 0; for (int j = 1; j < i; j++) { if (i % j == 0) { //疊加因子之和 sum += j; } } //判斷是否為完數 if (sum == i) { list.add(i); } } return list; }
讀到這里,這篇“java經典算法實例代碼分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。
當前文章:java經典算法實例代碼分析
分享網址:http://vcdvsql.cn/article16/gjoddg.html
成都網站建設公司_創新互聯,為您提供虛擬主機、軟件開發、網站改版、網頁設計公司、網站內鏈、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯