카테고리 없음

[C++] 팩토리얼(factorial 계승) 구하기

s뽈록이s 2013. 9. 9. 08:51
void main()
{
	int su, factorial = 1, i;

	x:
	cout << "양의 정수를 입력해 주세요 : ";
	cin >> su;

	if(su < 1)
	{
		cout << "잘못된 범위를 입력하셨습니다." << endl;
		goto x;
	}

	for(i = 2; i <= su; i++)factorial = factorial * i;
	cout << su << "! = " << factorial << endl;
}

프로그램 실행화면


팩토리얼 즉 계승을 구하는 프로그램이다. 위에 있는 실행화면과 같이 5를 입력하면 1 * 2 * 3 * 4 * 5의 계산결과를 돌려주면 되는 것이다.


1은 곱하나 안곱하나 차이가 없기 때문에 for문을 시작할 때 2 ~ N까지 반복하게 해두었다. 보통 for문에서 10번 반복을 하고 싶을 때면 for(i = 0; i < 10; i++){} 이런식으로 사용한다.


i가 0~9까지이기 때문에 10번인 것이다. 초기값이 1이라면 for(i = 1; i <= 10; i++){} 또는 for(i =1; 1 < (10 + 1); i++){} 이런식으로 해주어야지 10번을 반복한다.


그래서 위에 있는 프로그램에서도 조건식에 <가 아니라 <= 이것이 들어가 있는 것이다.