Cos Pro 2급
Cos Pro 2급 2차_문제8번 C언어
Dev_Jen
2024. 3. 30. 21:39
반응형
#문제8 자연수의 각 자릿수 중에서 소수는 몇 개인지 구하려 합니다. 즉, 자연수를 각 자릿수별로 나누었을 때, 2, 3, 5, 7이 몇 개 있는지 구하려 합니다.
예를 들어, 자연수가 29022531일 때, 각 자릿수 중 소수의 위치는 다음과 같습니다.
- 2902``2``5``31
따라서 소수의 개수는 총 5개입니다.
자연수 number가 매개변수로 주어질 때, number의 각 자릿수 중 소수는 몇 개인지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
#####매개변수 설명 자연수 number가 solution 함수의 매개변수로 주어집니다.
- number는 1 이상 1,000,000,000 이하의 자연수입니다.
#####return 값 설명 number의 각 자릿수 중 소수는 몇 개인지 return 해주세요.
#####예시
문제
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int number) {
int count = 0;
while(number >= 0){
int n = number % 10;
if (n == 2 || n == 3 || n == 5 || n == 7)
count += 1;
number /= 10;
}
return count;
}
// 아래는 테스트케이스 출력을 해보기 위한 main 함수입니다. main함수는 잘못된 부분이 없으니, solution함수만 수정하세요.
int main() {
int number = 29022531;
int ret = solution(number);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
printf("solution 함수의 반환 값은 %d 입니다.\\n", ret);
}
정답
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int number) {
int count = 0;
while(number > 0){
int n = number % 10;
if (n == 2 || n == 3 || n == 5 || n == 7)
count += 1;
number /= 10;
}
return count;
}
반응형