我想用JAVA編寫一個程序,在這個程序中,我必須找出給定序列中出現8次的次數。查找1到100之間有多少個8?
ex: 1至100我們會發現有多少個8?
即8,18,28,38,48,58,68,78,80,81,82,83,84,85,86,87,88,89,98?
20倍
我想用JAVA編寫一個程序,在這個程序中,我必須找出給定序列中出現8次的次數。查找1到100之間有多少個8?
ex: 1至100我們會發現有多少個8?
即8,18,28,38,48,58,68,78,80,81,82,83,84,85,86,87,88,89,98?
20倍
我不會給你的代碼,因爲你不會通過模仿來學習其他人的編寫自己的代碼。取而代之的是,這裏有一些提示,以幫助你把它寫自己
使用for
循環來通過數字,
Integer.toString()
算'8'
字符。
(還有其他方法可以做到這一點...)
刪除作業標籤後,Mods正在尋找完整的答案,而不是提示。檢查了這一點:http://meta.stackexchange.com/questions/147100/trogdor-ate-my-homework-tag –
作爲一個人1)一直參與教人們編程,2)必須與人打交道在那些無法用溼紙袋編程的採訪中,我不同意這種觀點,即我們應該通過給學生提供完整的編程練習解決方案來「幫助」學生。 –
我完全同意你的看法。 –
只是爲了展示如何給別人的代碼不會幫你了...
你缺少一個八。 ;)
String s = "";
for (int i = 1; i <= 100; i++) s += i;
/**/System.out.println("There are " + (s.split("8").length - 1) + " eights");
打印
There are 20 eights
你需要學習如何爲自己做到這一點。
這個問題很糟糕。目前還不清楚是否它們中包含「8」的數字的計數或數字中的「8」的計數。 IOW:目前還不清楚是否數一次或兩次「88」。 –
多少8順序,即8,18 ... 88,98是的,你必須計數8兩個在88 –
他錯過了80 ... –
public static int count8(int from, int to) {
int count = 0;
for (int i = from; i <= to; i++) {
int j = i;
while (j > 0) {
if (j % 10 == 8)
count++;
j /= 10;
}
}
return count;
}
調用方法:
count8(1, 100); >>> 20
我建議你試試這個,因爲它不是解析字符串。你可以通過你想要檢查的範圍。 –
StringBuffer sb = new StringBuffer();
for(int i=0; i<=100; i++){
sb.append(i);
}
System.out.println(StringUtils.countMatches(sb, "8"));
彼得Lawrey的可讀形式的代碼,
public static void main(String[] args){
String str = "";
for(int i=0; i<=100; i++){
str += i;
}
System.out.println((str.split("8").length) - 1);
}
1.這是公然作業。 2.你甚至沒有試圖自己寫 - StackOverflow不只是爲你做你的工作。 – Hbcdev
找到你想要的邏輯是什麼? – basiljames
正如你所看到的,每個人都可以用不同的邏輯給你一個工作解決方案。你應該首先考慮一個邏輯然後實現它。 – basiljames