팩토리얼
팩토리얼은 1부터 N(지정해준 수)까지의 수를 모두 곱하는 것이다.
예를 들어서 N이 5라고 치면 1부터 5까지의 값을 모두 곱한 1X2X3X4X5 = 120이 되는 것을 말한다.
변수 선언
int n;
int s = 1000000007; //나눈 값
unsigned long long result =1; //결과값
이때, result의 결과값이 매우 크기 때문에 unsigned long long을 사용하여 메모리 값이 큰 아이로 지정해줬다.
for(int i=1; i<=n; i++){
result = (result*i) % s;
}
팩토리얼은 1부터 N까지의 수를 모두 곱하는 것이므로!
i = 1부터 시작해서 n까지 반복시켜준다.
for(int i=1; i<=n; i++){
result = (result*i) % s;
}
printf("%llu",result);
이 문제가 원하는 것은 N!(팩토리얼)을 1000000007로 나눈 나머지를 출력하는 것이므로 result에다가 (result*i) %s 값을 주고, for문 밖에다가 result를 출력해주면 된다.
여기서 주의할 점은 result값을 unsigned long long으로 지정했으므로 출력했을 때 출력 형태를 %llu로 해줘야 된다
끝!
'코딩 테스트' 카테고리의 다른 글
[ 프로그래머스 ] 특정한 문자를 대문자로 바꾸기 (0) | 2024.01.17 |
---|---|
[ 프로그래머스 ] 문자열 섞기 (0) | 2024.01.13 |
[ 프로그래머스 ] 더 크게 합치기 (0) | 2024.01.13 |
[ 프로그래머스 ] 9로 나눈 나머지 (1) | 2024.01.13 |
[프로그래머스] 문자열 겹쳐쓰기 (2) | 2023.12.27 |