1. 팩토리얼
팩토리얼이란 자연수 n일때 1부터 n까지의 모든 자연수를 곱한 것을 팩토리얼이라고 한다. 팩토리얼을 표현하기 위해서 !기호를 사용한다.
n! = (n-1) * (n-2) * (n-3) * ... * 1; 또는 n! = 1 * 2 * 3 * ... * n;
위 설명처럼 프로그램을 작성해 보자. ( 코딩 1 )
#include <stdio.h> int main() { int n, i, result=1; printf("정수 입력 : "); scanf("%d", &n); for (i = n; i >= 1; i--) result *= i; printf("%d! = %d\n", n, result); return 0; } |
실행결과]
정수 입력 : 5 5! = 120 |
위 설명처럼 프로그램을 작성해 보자. ( 코딩 2 )
#include <stdio.h> int main() { int n, i, result=1; printf("정수 입력 : "); scanf("%d", &n); for (i = 1; i<= n; i++) result *= i; printf("%d! = %d\n", n, result); return 0; } |
실행결과]
정수 입력 : 5 5! = 120 |
팩토리얼을 문제는 일반적으로 책에서 재귀함수부분에서 많이 다루는 예제입니다. 그래서 재귀함수를 이용한 소스코드를 작성해 보도록하겠습니다.
위 그림처럼 팩토리얼의 재귀함수의 식은 "n * fact( n - 1 );" 라는 것을 알 수 있습니다. 지금부터 코딩을 해보겠습니다.
#include <stdio.h>
|
실행결과]
정수 입력 : 5 5! = 120 |
1309 : 팩토리얼
문제] 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 말하며 n!로 나타낸다.
0! = 1
1! = 1
2! = 2
n! = n * (n-1)!
:
와 같이 정의된다.
예로 4! = 4×3×2×1 = 24 이다.
n! 이 주어졌을 때 결과를 출력하는 프로그램을 작성하라.
* 결과가 int범위를 넘는 경우
long long 입력/출력 서식문자 %lld 를 사용한다.
입력 형식]
입력은 한 줄로 이뤄지며 팩토리얼의 숫자 n(1≤n≤15)이 입력된다.
출력 형식]
n!에 대한 계산 결과를 "출력예"처럼 과정을 출력하고 마지막에 결과를 출력한다.
입력 예 4
|
출력 예] 4! = 4 * 3! |
팩토리얼 문제를 코딩하면 아래와 같습니다.
소스코드 | 실행 결과 |
#include <stdio.h>
|
입력 예] 4
출력 예] 4! = 4 * 3! |
'프로그램언어 > C언어' 카테고리의 다른 글
c언어 수학관련 함수 (0) | 2019.10.17 |
---|---|
c언어 삼각함수, 역삼각함수, 쌍곡선함수 (0) | 2019.10.16 |
c언어 열거형 - enum (0) | 2019.10.14 |
c언어 10진수를 2진수로 변환 (0) | 2019.10.11 |
c언어 소수 구하기 (0) | 2019.10.11 |