回答
我不能說這efficent,我敢肯定有一個更好的方式去了解它,但乾草,很好玩:P
你需要做的第一件事是丟棄的部分String
你不需要現在
int sum = 0;
String test = "42932-5";
List<Integer> listValues = new ArrayList<Integer>(test.length());
for (int index = 0; index < test.length(); index++) {
char value = test.charAt(index);
if (Character.isDigit(value)) {
listValues.add(Integer.parseInt(Character.toString(value)));
}
}
,你可以使用一個StringBuilder
,而不是List
,但是這是什麼來把我的頭。
接下來,你需要總結他們
for (int index = 0; index < listValues.size(); index++) {
sum += (listValues.get(index) * (test.length() - index - 1));
}
而且我結束了類似
(4 * 6) + (2 * 5) + (9 * 4) + (3 * 3) + (2 * 2) + (5 * 1)
= 88
恩,這不應該是88嗎? :) – 2012-08-11 07:14:13
@JoachimIsaksson乾草,沒有說這是偉大的;) - 測試字符串是使用正確的公式,實際計算不是,謝謝注意,你已經過去的回答者是一個虛擬測試;) – MadProgrammer 2012-08-11 07:19:44
@MadProgrammer對不起,延遲迴復,我不舒服。 (4 * 6)+(2 * 5)+(9 * 4)+(3 * 3)+(2 * 2)% 11 = 6和11-6 = 5應該與「 - 」之後的數字匹配,即5。再次感謝您的幫助。 – 2012-08-14 05:09:30
的計算同樣的方式,你在數學和幾乎任何其他語言
4*10000 + 2*1000 + 9*100 + 3*10 + 2*1 - 5*1
工程用Fortran,C,C++,C#,斯卡拉做,....
好,首先,如果你正在尋找總和,那麼沒有理由將它變成一個字符串......我會試着通過給你一個指導來幫助你:你需要使用模數運算符(%),以便自己訪問整數的最右側數字。完成之後,將整數除以10以刪除最右邊的數字,然後再次使用%運算符以訪問下一個數字。如果你把這個想法變成一個循環並做一些小的修改,它應該做你正在尋找的東西。
基本上,您試圖將每個數字分別添加到總數中。在你的情況下,你希望每個數字乘以另一個數字,然後將其添加到總數中。不應該很難弄清楚。希望這可以幫助!
- 1. RMI計算器問題(JAVA)
- 2. 基本java計算問題
- 3. Java雙重計算問題
- 4. Java GPA計算器問題
- 5. 用Java簡單計算的問題
- 6. 計算問題
- 7. 問題計算器問題
- 8. 高級計算器java腳本問題
- 9. GUI計算問題
- 10. 小計算問題
- 11. Javascript計算問題
- 12. biginteger計算問題
- 13. MT4計算問題
- 14. Excel計算問題
- 15. jQuery計算問題
- 16. MapReduce計算問題
- 17. jquery計算問題
- 18. 計算器問題
- 19. DateTime計算問題
- 20. java運算問題
- 21. Java算法問題
- 22. JavaScript計算器的問題
- 23. 問題的計算浮子
- 24. 簡單計算的問題
- 25. JSP中的計算問題
- 26. 在兩個java類型的計算器中創建計算「引擎」的問題
- 27. Java設計問題
- 28. Java設計問題
- 29. 統計計算器 - 中位數問題和標準偏差java
- 30. Java類的設計問題
你是如何獲得你的「總和」的公式...? – Derek 2012-08-11 06:34:24
這是功課嗎? – 2012-08-11 06:46:04
@Derek似乎是賬單支付賬號(看起來像瑞典人)的簡單校驗碼,右邊的乘數減少了。 num(charAt(i))*(n-i) – 2012-08-11 06:48:26