1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※(注記) 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
n=10000;%1~10000
k=8;%8의 개수
h=ceil(log10(n));%10^(h-1)<n<=10^h
count=0;
for i=1:n
s(1)=i;
for j=1:h-1
m(j)=floor(s(j)/10^(h-j));%10^n 으로 나누기
s(j+1)=s(j)-(10^(h-j))*m(j);
end
m(h)=s(h);
for a=1:h
if m(a)==8
count=count+1;
end
end
end
fprintf('1~%d 까지의 8의 개수 : %d\n',n,count);
2018年12月05日 14:45
풀이 작성