알고리즘 - 팩토리얼

김혜진·2022년 9월 4일
0

알고리즘

목록 보기
1/13

C언어로 팩토리얼 함수를 만들고 함수 포인터를 활용하여 값 출력하기

팩토리얼이란 그 수보다 작거나 같은 모든 양의 정수의 곱이다.

#include<stdio.h>

void Factorial(int a, int* pRet);

int main(void)
{
	int a = 0;
	int result = 0;

	printf("정수를 입력하시오 : ");
	scanf_s("%d", &a);

	Factorial(a, &result);

	printf("%d", result);

	return 0;
}

void Factorial(int a, int* pRet)
{
	*pRet = a;

	for (int i = 1; i < a; i++)
	{
		*pRet *= i;
	}

}

반복문을 사용해 입력받은 값까지만 수를 곱해준다. 까지는 생각했는데 어떻게 구현을 할까를 고민하다가 작성해 본 첫번째 답안이다.
지금 다시 보니 약간 이상한 것 같다. 쉬운 길을 두고 일부러 돌아간 느낌...
팩토리얼의 개념을 헷갈렸나보다🥲 근데 잘 돌아가서 내 생각이 틀린 줄도 몰랐다.

#include<stdio.h>

void Factorial(int a, int* pRet);

int main(void)
{
	int a = 0;
	int result = 1;

	printf("정수를 입력하시오 : ");
	scanf_s("%d", &a);

	Factorial(a, &result);

	printf("%d", result);

	return 0;
}

void Factorial(int a, int* pRet)
{
	for (int i = 1; i <= a; i++)
	{
		*pRet *= i;
	}

}

이렇게 작성하는 게 더 간단할 것 같다. ㅎㅎ;

profile
알고 쓰자!

0개의 댓글