public App()
{
Console.WriteLine("App");
SayHelloRecursive(5);
}
//재귀 함수 (메서드)
//재귀 : 자신을 정의 할때 자신을 재참조 하는 방법
void SayHelloRecursive(int n)
{
Console.WriteLine("Hello World!");
if (n == 1) return; // base case 탈출구
SayHelloRecursive(n - 1); // Recursive case 재귀적 호출부분
}
public App()
{
Console.WriteLine(SumRecursive(3, 0));
}
// 재귀적인 방법으로 1 ~ n까지의 합을 반환하는 메서드를 정의하고 구현
int SumRecursive(int n, int count)
{
if (n == 0) return count;
count += n;
Console.WriteLine(count);
return SumRecursive(n - 1, count);
}
public App()
{
TimesTableRecursive(2, 0);
}
// 구구단의 단수를 입력받아 재귀적으로 다음과 같이 출력되는 메서드를 작성하세요
// n = 2
// 2 x 1 = 2
// 2 x 2 = 4
// 2 x 3 = 6
// 2 x 4 = 8
// 2 x 9 = 18
void TimesTableRecursive(int n, int count)
{
if (count >= 9) return;
count++;
Console.WriteLine("{0} x {1} = {2}", n, count, n * count);
TimesTableRecursive(n, count);
}
public App()
{
TimesTableRecursive(2, 0);
}
// 구구단의 단수를 입력받아 재귀적으로 다음과 같이 출력되는 메서드를 작성하세요
// n = 2
// 2 x 9 = 18
// 2 x 8 = 16
// 2 x 7 = 14
// 2 x 6 = 12
// 2 x 1 = 2
void TimesTableRecursive(int n, int count)
{
if (count >= 9) return;
count++;
TimesTableRecursive(n, count);
Console.WriteLine("{0} x {1} = {2}", n, count, n * count);
}
public App()
{
int result = FactorialRecursive(5);
Console.WriteLine(result);
}
// 팩토리얼을 구하는 메서드를 작성하세요
// 5! = 5x4x3x2x1
// 4! = 4x3x2x1
// 3! = 3x2x1
// 2! = 2x1
// 1! = 1
// 0! = 1
// int result = Factorial(0);
// result의 값은 1이다
int FactorialRecursive(int n)
{
if (n < 0) return 1;
Console.Write("{0}! = ", n);
for (int i=0; i<n; i++)
{
Console.Write("{0}", n - i);
if (n - i != 1) Console.Write("x");
}
if (n == 0) Console.Write("1");
Console.WriteLine();
return FactorialRecursive(n - 1);
}
public App()
{
FactorialRecursive(9);
}
void FactorialRecursive(int n)
{
if (n < 0) return;
Console.Write("{0}! = ", 9 - n);
int temp = 1;
for (int i = 0; i < 9-n; i++)
{
temp *= i + 1;
}
Console.WriteLine(temp);
FactorialRecursive(n - 1);
}
public App()
{
FactorialRecursive(9);
}
void FactorialRecursive(int n)
{
if (n < 0) return;
FactorialRecursive(n - 1);
Console.Write("{0}! = ", n);
int temp = 1;
for (int i = 0; i < n; i++)
{
temp *= i + 1;
}
Console.WriteLine(temp);
}