對於數學黑洞,不管怎樣設值,在規定的處理法則下,最終都將獲得固定的一個值,再也跳不出去了,就像宇宙中的黑洞能夠將任何物質,以及運行速度最快的光緊緊吸住,不使它們逃脫同樣。java
西西弗斯黑洞,即123黑洞,對任一整數,不斷重複數出這個數中的偶數個數,奇數個數,及這個數中所包含的全部位數的總數,將數整理爲「偶數個數,奇數個數,總位數」排列,最後必得出123的結果。git
冰雹猜測是指,一個天然數x,若是是奇數就乘以3再加1,若是是偶數就析出偶數因數2ⁿ,這樣通過若干個次數,最終回到1。編程
任寫一個3的倍數(正整數),把各位數字的立方相加,得出和,再把和的各位數字立方後相加,如此反覆進行,最後必然出現「聖經數」。函數
數學黑洞1和4是指任取一個非0天然數,求出它的各個數位上數字的平方和,獲得一個新數。再求出這個新數各個數位上數字的平方和,又獲得一個新數。如此進行到最後只有兩種狀況: 出現1,以後永遠都是1;出現4,以後開始按四、1六、3七、5八、8九、14五、4二、20循環。測試
- 西西弗斯黑洞
- 冰雹猜測
- 聖經數
- 數字黑洞1和4
1.異常輸入測試
ui
2.調用其餘包內類結果測試
spa
其餘測試結果,可由上面連接,進入單個博客查看設計
- 用戶界面 :實現讀取用戶輸入的黑洞類型
- 判斷輸入值是否合法
- 調用所須要的類型
- 計算、驗證黑洞狀況
1.異常輸入處理,代碼以下3d
import java.util.Scanner; public class Testint { public int Testint(){ { Scanner sc = new Scanner(System.in); String x; int count = 0; while (count < 3) { try { x = sc.nextLine(); //以獲取字符串形式獲取輸入值 if (Integer.valueOf(x) instanceof Integer) { //判斷輸入值是否爲int型,Integer爲int的包裝類 int i = Integer.parseInt(x); return i; } } catch (Exception e) { System.out.println("警告!!!您須要輸入正整數."); count++; } } System.out.println("錯誤次數過多,您的請求被拒絕!"); return -1; } } }
其中next() 方法會使得出現以下狀況,因此必須須要nextLine()
instanceof
是Java中的一個雙目運算符,用來測試一個對象是否爲一個類的實例,具體用法可參考instanceof的用法
2.調用其餘包中函數import 包名.函數名
,例子如圖
3.計算整數的數據長度
除了簡單的遞歸除以10之外,可使用Java提供的爲int提供的封裝類Integer,如下是構造方法和經常使用方法摘要。
嘗試一
調用其餘主函數主函數名.main(null)
爲了使程序更加的整齊規範,仍是將這個用法廢棄了。
嘗試二
在嘗試更改類名、包名時,我看到了重構的方便
1. 要儘可能按照駝峯規則命名,而且按照其英語名稱命名,增長後期整理總結可讀性。
2. 在前期寫單個函數時就要儘可能遵照SOLID規則,後期的修改更爲麻煩。
步驟 | 耗時(分鐘) | 百分比 |
---|---|---|
需求分析 | 50 | 14.2% |
設計 | 40 | 11.4% |
代碼實現 | 120 | 34.2% |
測試 | 20 | 5% |
分析總結 | 120 | 34.2% |