= 2; --i) { result *= i; } printf("%d", result); } case 2 int factorial(int n) { if (n == 1) { return 1; } return n * factorial(n - 1); } }"> = 2; --i) { result *= i; } printf("%d", result); } case 2 int factorial(int n) { if (n == 1) { return 1; } return n * factorial(n - 1); } }"> = 2; --i) { result *= i; } printf("%d", result); } case 2 int factorial(int n) { if (n == 1) { return 1; } return n * factorial(n - 1); } }">

02. 자료구조와 알고리즘

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

N! = N * (N - 1)! (N >=2)
1! = 1 (N = 1)

case 1

int main(void)
{
int N;
scanf("%d", &N);
int result = 1;
for (int i = N; i >= 2; --i)
{
	result *= i;
}

printf("%d", result);
}

case 2

int factorial(int n)
{
if (n == 1)
{
return 1;
}
return n * factorial(n - 1);
}

}
int main(void)
{
int N;
scanf("%d", &N);
printf("%d", factorial(N));
}

10870 피보나치수 5

int pibo(int n)
{
if (n <= 1)
{
return n;
}

return pibo(n - 1) + pibo(n - 2);

}

int main(void)
{
int N;
scanf("%d", &N);
printf("%d", pibo(N));
}

10진수 입력 받아서 재귀로 2진수로 출력

void tenJinsu(int n)
{
if (n == 0)
{
return;
}

int mok = n / 2;
int nmg = n % 2;

tenJinsu(mok);

printf("%d", nmg);
}

// tenJinsu(15) : mok(7), nmg(1)
// tenJinsu(7) : mok(3), nmg(1)

int main(void)
{
int N;
scanf("%d", &N);

tenJinsu(N);

}

재귀함수가 뭔가요?

어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.
"재귀함수가 뭔가요?"
"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
그의 답은 대부분 옳았다고 하네.그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."

void message(int n)
{
if (n >= 1)
{
	printf("\\\\"재귀함수가 뭔가요 ?\\\\"\\\\n");
	printf("%s \\\\"잘 들어보게.옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\\\\n", hypen(n));
	printf("마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\\\\n");
	printf("그의 답은 대부분 옳았다고 하네.그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\\\\"\\\\n");
}

return message(n - 1);
}
int main(void)
{
int N;
scanf("%d", &N);
puts("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\\\\n");
message(N);

return 0;
}

void PrintWithTab(int tabCount, const char* str)
{
//tabCount : 2
//str : "라고 답변하였지."
for (int i = 0; i < tabCount; ++i)
printf("**");
puts(str);
//**

}

void DoChatbot(int count)
{
if (count == N)
{
PrintWithTab(count, str[0]);
PrintWithTab(count, "\\"재귀함수는 자기 자신을 호출하는 함수라네\\"");
PrintWithTab(count, "라고 답변하였지.");

	return;
}

for (int i = 0; i < 4; ++i)
	PrintWithTab(count, str[i]);

DoChatbot(count + 1);

PrintWithTab(count, "라고 답변하였지.");
}