namespace CSharp
{
internal class Program
{
static int Factorial(int n)
{
////for문이용
//int ret = 1;
//for (int num = 1; num <= n; num++)
//{
// ret *= num;
//}
//return ret;
// 재귀 함수 이용
if (n <= 1)
{
return 1;
}
return n * Factorial(n - 1);
}
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine($"{i} * {j} = {i * j}");
Console.WriteLine();
}
int ret = Factorial(5);
Console.WriteLine(ret);
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
}
}
int ret = 1;
// 2. 반복문 실행
for (int num = 1; num <= n; num++)
{
ret *= num;
}
return ret;
초기값 설정
int ret = 1; 반복문을 통한 계산
for (int num = 1; num <= n; num++) num 변수를 1부터 시작하여 n까지 1씩 증가시키면서 반복합니다.ret *= num; ret에 현재 num 값을 곱합니다.결과 반환
return ret; static int Factorial(int n)
{
if (n <= 1)
{
return 1;
}
return n * Factorial(n - 1);
}
목적:
n의 팩토리얼 값을 계산합니다.구현 방식:
n이 1 이하일 때(즉, 0! 또는 1!) 1을 반환하여 재귀 호출을 중단합니다.return n * Factorial(n - 1); n과 n-1에 대한 팩토리얼 값을 곱하여 결과를 반환합니다.예시:
Factorial(5)는 5 4 3 2 1의 계산 과정을 거칩니다.// for (int i = 0; i < 10; i++)
// {
// for (int j = 0; j < 10; j++)
// {
// Console.WriteLine($"{i} * {j} = {i * j}");
// }
// Console.WriteLine();
// }
목적:
구현 방식:
i): j): "i * j = 결과" 형태로 출력되고, 외부 루프마다 줄바꿈을 추가하여 단 사이의 구분을 명확히 합니다.// for (int i = 0; i < 5; i++)
// {
// for (int j = 0; j <= i; j++)
// {
// Console.Write("*");
// }
// Console.WriteLine();
// }
목적:
구현 방식:
i): j): i까지 반복하며 해당 줄에 출력할 별의 개수를 결정합니다.