count={ x:0 for x in range(0,10) }
for x in range(1,1001):
for i in str(x):
count[int(i)]+=1
print(count)
2016年05月14日 16:57
int box[] = new int[10];//각 숫자를 저장할 공간
for (int i = 1; i <= 1000; i++) {
box[i%10]++;//일의 자리
if (i>=10) box[i/10%10]++;//십의 자리
if (i>=100) box[i/100%10]++;//백의 자리
if (i==1000) box[i/1000%10]++;//천의 자리
}
System.out.println(Arrays.toString(box));
2016年06月16日 21:21
python 3.5.1+ 로 작성했습니다.
temp=[0,0,0,0,0,0,0,0,0,0] # 리스트 생성
for num in range(1,1001): #0~1000
for tp in (str(num)): # 각 숫자를 배열로 취급하기 위해 string화 시킴
temp[int(tp)]+=1 # 넣을땐 다시 int로 해서 temp에 넣음
for i in range(10): # 출력
print(i,":",temp[i],"개")
2016年04月07日 06:17
파이썬 3.5.1 64
for x in range(10):print('%d: %d'%(x,''.join(map(str, range(1, 1001))).count(str(x))))
또는
_ = list(print('%d: %d'%(i, l.count(str(i)))) for i in range(10) for l in [''.join(map(str, range(1, 1001)))])
C++
#include <iostream>
using namespace std;
int main(){
string li[1000];
int result[10];
for(int x=1;x<=1000;x++)
li[x-1] = to_string(x);
for(int x=0;x<1000;x++){
for(int y=0;y<li[x].length();y++){
int index = li[x].at(y) - '0';
result[index] += 1;
}
}
for(int x=0;x<10;x++)
cout << result[x] << endl;
return 0;
}
자바
public class MyClass {
public static void main(String[] args) {
int target = 1000;
int[] list = new int[target];
int[] result = new int[10];
for(int x = 0; x < list.length; x++){
list[x] = x;
}
for(int x = 0; x < result.length; x++) {
result[x] = 0;
}
for(int x = 1; x < list.length+1; x++){
char[] c = (""+x).toCharArray();
for(char j:c){
result[Character.getNumericValue(j)] += 1;
}
}
for(int i:result){
System.out.println(i);
}
}
}
0: 192 1: 301 2: 300 3: 300 4: 300 5: 300 6: 300 7: 300 8: 300 9: 300
2016年04月11日 23:15
C로 풀었습니다.
#include<stdio.h>
int main(void){
int start, end, nam, mok;
int i, k;
int array[10]={0,1,2,3,4,5,6,7,8,9}; // 비교할 숫자들이 들어간 배열
int check[10]={0,0,0,0,0,0,0,0,0,0}; // 비교 후에 count한 값이 들어갈 배열
printf("두 숫자를 입력하시오.\n");
scanf("%d", &start);
scanf("%d", &end);
for(i=start; i<end+1; i++){
mok=i;
while(mok>0){
nam=mok%10;
printf("%d ", nam);
for(k=0; k<10; k++){
if(nam==array[k]){
check[k]=check[k]+1;
}
}
mok = mok/10;
}
}
printf("\n");
for(k=0; k<10; k++){
if(check[k]!=0)
printf("%d:%d개\t", k, check[k]);
}
printf("\n");
}
2016年04月10日 20:42
public static void main(String[] args) {
int box[] = new int[10];
for(int i=1; i <=1000;i++){
box[i%10]++;
if(i>=10) box[(i/10)%10]++;
if(i>=100) box[(i/100)%10]++;
if(i==1000) box[1]++;
}
System.out.println(Arrays.toString(box));
}
답은 : [192, 301, 300, 300, 300, 300, 300, 300, 300, 300]
2017年06月11日 20:23
풀이 작성