Programming
Study/Programming / / 2024. 3. 29. 09:55

BOJ 1676번 : 팩토리얼 0의 개수 / C언어

728x90

문제 : https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

[처음 작성한 코드... 시간초과...]

더보기

#include <stdio.h>

int main(void){
    int n, i;
    int fac = 1;
    int count = 0;
    
    scanf("%d", &n);
    
    for(i = 1; i <= n; ++i){
        fac *= i;
    }
    
    while(fac % 5 == 0){
        count++;
        fac /= 5;
    }

    printf("%d", count);
}


코드:

더보기

#include <stdio.h>

int main(void) {
    int n, i;
    int count = 0; // 5로 나누어 떨어지는 수의 개수를 저장하는 변수

    // 사용자로부터 정수를 입력받음
    scanf("%d", &n);

    // 5의 배수들이 등장하는 횟수를 계산하는 루프
    // i는 5의 배수를 의미하며, i를 5씩 곱해가면서 5의 배수들을 확인함
    // 예를 들어, n이 100이라면, 5, 10, 15, 20, ..., 100까지의 5의 배수들을 확인
    // 각각의 5의 배수는 5로 나누었을 때 몫이 등장하는 횟수를 의미함
    // 5의 제곱수(25, 50, 75, 등)의 경우, 각 배수에 대해 한 번 더 5로 나누어야 함
    // 이를 통해 등장하는 5의 배수들의 개수를 세고, count 변수에 더해줌
    for (i = 5; i <= n; i *= 5) {
        count += n / i;
    }

    // 결과 출력
    printf("%d", count);
    return 0;
}

 

728x90

'Study > Programming' 카테고리의 다른 글

BOJ 10952번 : A + B - 5 / C언어  (0) 2024.03.29
Tistory 꾸미기 - 벚꽃 / Web  (0) 2024.03.29
BOJ 2438번 : 별 찍기 - 1 / C언어  (0) 2024.03.28
BOJ 2557번 : Hello World / C언어  (0) 2024.03.28
BOJ 2754번 : 학점계산 / Python  (0) 2024.03.28
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유