https://www.acmicpc.net/problem/1676
📒 문제
📒 입출력
🌻 코드
import java.util.Scanner;
public class Fac_1676 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N=sc.nextInt();
int cnt = 0;
for(int i = 0; i<=N; i+=5){
if(i>100 && i%125==0) cnt+=3;
else if(i!=0 && i%25==0) cnt += 2;
else if(i>=5) cnt += 1;
}
System.out.println(cnt);
}
}
💡 정리하기
👉 500!의 계산 결과를 보고 규칙성이 있을거라 생각해서 규칙성을 찾기 시작했다. 팩토리얼 계산기 없었으면 못 풀었을듯 .. 처음에는 5의 배수일때 2개 증가한다고 생각했는데 '틀렸습니다'가 나와서 더 많은 경우의 수를 생각해봤다. 그러고 25가 있다는걸 알게되었고 500을 돌려보고 또 다른 규칙성이 있다는걸 알게되었다. 다른분들의 코드를 보니 간단히 정리된 코드를 볼 수 있었다. (N/5)+(N/25)+(N/125) 이렇게 간단하게 만들 수 있었다.