所以我需要開發一種方法來查找整數中最小的數字。從整數中找到最小數字的方法
-2
A
回答
0
public static int find(int num) {
if(num < 10){
return num;
}
int d = num % 10;
int pmin = find(num/10);
return (d <= pmin) ? d : pmin;
}
2
這是我實現
public int find(int n){
if(n < 10) return n;
return Math.min(n%10, find(n/10));
}
您可以通過長修改int ...
0
我個人認爲,一個for循環會更快,更容易比遞歸函數。但是對於遞歸或for循環,你需要迭代一些東西。最簡單的方法是將數字轉換爲字符串,然後遍歷它進行所需的比較。
在你的主:
int i = 578329;
String s = Integer.toString(i);
s = FindSmallest(s);
調用該函數:
private String FindSmallest(String s){
if(s.length() <= 1)
return s;
String sFirstChar = s.substring(0,1);
String sSecondChar = s.substring(1,2);
int iFirst = Integer.parseInt(sFirstChar);
int iSecond = Integer.parseInt(sSecondChar);
if(iFirst < iSecond)
return FindSmallest(sFirstChar + s.substring(2));
else
return FindSmallest(sSecondChar + s.substring(2));
}
1
如果您有興趣學習如何算出這個自己(和你應該),我會嘗試以下這些步驟。
在您的腦海中慢慢地或者甚至更好地將這些步驟寫在紙上!注意你採取的每一步。
Step one may be: look at the first digit
考慮你所創建的步驟。有沒有似乎重複自己的部分?這些部分可能是您的遞歸函數。
重寫步驟遞歸函數(純英文)
翻譯的步驟到您的編程語言; Java,在這種情況下。
如果你願意,你甚至可以離開這個簡單的英語步驟中的每一行作爲註釋背後的代碼,這樣每個人都可以很容易地按照你的代碼
+0
非常感謝你提示我如何去做,我想到了mod 10,然後我知道如何比較它,並得到最小的數字 – CLearner 2014-10-20 19:00:08
相關問題
- 1. 找到最小整數
- 2. 找到一個整數中的最小數字
- 3. 找到MySQL中最接近的整數的最有效方法?
- 4. 找到64位整數中最大和最小有效位的快速方法
- 5. 如何從未分類的正整數流中找到最小的正整數?
- 6. 找到最小的數字有3個整數根?
- 7. 如何找到不在整數字段中的最小值
- 8. 從包含對象的數組中找到最小值的最佳方法
- 9. 最有效的方法來找到最接近的整數?
- 10. 找到一個數字的更多pythonic方法是最小化所有數字
- 11. 從數組中找到最接近的整數向上取整
- 12. 查找列表中所有數字的最小整數
- 13. 在「無序」數組中找到數字的最佳方法?
- 14. 尋找數組中n個最小數字的最快方法是什麼?
- 15. 如何找到數組中最小和最大的數字?
- 16. 找到給定整數的最小Antiprime的更好算法
- 17. 從數組中的2個數字中找出最大和最小數字
- 18. 找到最小的整數類型,可以計數到N
- 19. 找到字符串數組中字符串的最快方法
- 20. 如何從整數表中找到指定整數的最近整數?
- 21. 查找數組中缺失整數的最有效方法
- 22. 如何在數組中找到最大和最小數字c
- 23. 找到bash中排序數組中數字的最小差異
- 24. 如何在javascript中找到此函數中的最小數字
- 25. 從給定的整數數組中找出最接近中間範圍的數字的方法
- 26. Pythonic找到x可以被N整除的最小整數?
- 27. 尋找最大數字的方法
- 28. 使用遞歸找到整數中的最大數字
- 29. 的Python:尋找最小整數
- 30. 在C++中找到最小數+ ve數?
我想我可以做MOD 10,然後比較? – CLearner 2014-10-20 17:45:29
@CLearner是的,你可以,這是正確的方法。現在你的基本情況和遞歸步驟是什麼? – 2014-10-20 17:59:55
作爲一個觀點,我認爲你不應該接受一個答案,直到你得到一個正確的解釋兩件事:尾遞歸(即使Java仍然[沒有保證的尾部調用優化](http://stackoverflow.com/questions/3616483/why-does-the-jvm-still-not-support-tail-call-optimization),但只是原則上和學習這個重要的遞歸概念)和對數遞歸深度。用Java遞歸做這件事完全沒有意義,除了學習這兩件事。 – hyde 2014-10-20 18:11:47