1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※(注記) 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
Javascript 입니다.
var cnt = 0;
var strNum;
for(var i=1;i<=10000;i++) {
strNum = String(i);
for(var j=0;j<strNum.length;j++){
if(strNum[j] === "8") {
cnt++
}
}
}
console.log(cnt);
2015年05月06日 14:33
Tcl/tk입니다.
set sum 0
set match_num 0
for {set x 1} {$x <= 10000} {incr x} {
set pattern_check [ regexp -all {[8]} $x ]
if { $pattern_check != 0 } {
lappend match_num $pattern_check
}
}
set sum [ expr [ join $match_num "+" ]]
2015年05月08日 11:52
자바 한줄로 해봤습니다. 좀 지저분하네요
IntStream.range(1, 10000).filter(e -> String.valueOf(e).contains("8") ).map(e -> String.valueOf(e).replaceAll("[^8]", "").length()).sum();
2015年05月08日 15:09
{```{.cpp}
#include<iostream>
using namespace std;
int eight(int n);
int count;
int main() {
for(int i = 0; i < 10001; i++) {
eight(i);
}
cout << "8의 개수: " << count << endl;
return 0;
}
int eight(int n)
{
if(n%10 == 8)
count++;
if(n > 10)
eight(n/10);
return count;
} ```
2015年05月29日 11:25
0000부터 9999까지로 생각을 하면 4자리수(숫자 4개)가 10000번 반복되었으므로, 총 사용된 숫자는 4만개. 모든 정수는 동일한 빈도로 사용되었기 때문에 나누기 10 하면, 4000
print ''.join([str(i) for i in range(1,10000)]).count('8')
import re
pat=re.compile('8')
n=''.join([str(i) for i in range(1,10000)])
s=len(pat.findall(n))
print s
2015年06月15日 01:58
using java
public class Main {
public static void main(String[] args) {
int returns = 0;
for(int i = 0; i<10000; i++)
{
String str = String.valueOf(i);
for(int j = 0; j<str.length(); j++)
returns += ("8".equals(String.valueOf(str.charAt(j))))? 1:0;
}
System.out.println(returns);
}
}
풀이 작성