🌕🌑🌑🌑🌑
# 題目連結
- 題目連結
- Online Judge
- uDebug
# 題目說明
Time limit: 3.000 seconds
# 題目
Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequence of consecutive integers starting with 1
to N (1 < N < 10000)
. After that, he counts the number of times each digit ( 0
to 9
) appears in the sequence. For example, with N = 13
, the sequence is:
In this sequence, 0
appears once, 1
appears 6
times, 2
appears 2
times, 3
appears 3
times, and each digit from 4
to 9
appears once. After playing for a while, Trung gets bored again. He now wants to write a program to do this for him. Your task is to help him with writing this program.
# Input
The input file consists of several data sets. The first line of the input file contains the number of data sets which is a positive integer and is not bigger than 20
. The following lines describe the data sets.
For each test case, there is one single line containing the number N
.
# Output
For each test case, write sequentially in one line the number of digit 0, 1, . . . 9
separated by a space.
# Sample Input
2
3
13
# Sample Output
0 1 1 1 0 0 0 0 0 0
1 6 2 2 1 1 1 1 1 1
# 解題技巧
# Solution
import java.util.*; | |
public class Main{ | |
public static void main(String[] args){ | |
Scanner sc = new Scanner(System.in); | |
int line = sc.nextInt(); | |
int[][] arr = new int[10001][10]; | |
for(int i = 1; i <= 10000; i++){ | |
String num = Integer.toString(i); | |
for(int j = 0; j < 10; j++){ | |
arr[i][j] = arr[i - 1][j]; | |
} | |
for(int j = 0; j < num.length(); j++){ | |
arr[i][(int) (num.charAt(j) - '0')]++; | |
} | |
} | |
for(int i = 0; i < line; i++){ | |
int N = sc.nextInt(); | |
int[] ans = arr[N]; | |
for(int j = 0; j < 10; j++){ | |
System.out.print((j != 0 ? " " : "") + ans[j]); | |
} | |
System.out.println(""); | |
} | |
sc.close(); | |
} | |
} |
單字
** **
!! !!
片語 & 搭配詞
!! !!