📄문제
자연수 N이 입력되면 1부터 N까지의 자연수를 종이에 적을 때 각 숫자 중 3의 개수가 몇 개있는지 구하려고 합니다.
예를 들어 1부터 15까지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로 3의 개수는 2개입니다.
자연수 N이 입력되면 1부터 N까지 숫자를 적을 때, 3의 개수가 몇 개인지 구하여 출력하는 프로그램을 작성하세요.
⬇️ 입력
첫 줄에 자연수의 개수 N(3<=N<=100,000)이 주어집니다.
15 |
⬆️ 출력
3의 개수를 출력하세요.
2 |
📝 풀이
#include<stdio.h>
int res;
int main() {
int n, i, j;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = i; j > 0; j = j / 10) {
if (j % 10 == 3) res++;
}
}
printf("%d\n", res);
return 0;
}
- N의 범위가 작기때문에 단순히 for문으로 해결하였습니다.
- 각 숫자가 3으로 나누어 떨어지는지 확인하고, res를 더합니다.
'algorithms (C++)' 카테고리의 다른 글
[C++] 탄화수소 질량 (1) | 2023.10.14 |
---|---|
[C++] 3의 개수 (large) 🔥 (0) | 2023.10.14 |
[C++] N!에서 0의 개수 🔥 (0) | 2023.10.13 |
[C++] N!의 표현법 (0) | 2023.10.13 |
[C++] 마라톤 (0) | 2023.10.13 |