전체 코드

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();
            }
        }

    }
}

A. 팩토리얼 계산 (재귀 함수)

  • for
int ret = 1;  

// 2. 반복문 실행
for (int num = 1; num <= n; num++)
{
    ret *= num;  
}


return ret;  
  • 초기값 설정

    • int ret = 1;
      • 팩토리얼 계산은 곱셈이기 때문에, 결과 저장 변수는 1로 초기화합니다.
  • 반복문을 통한 계산

    • for (int num = 1; num <= n; num++)
      • num 변수를 1부터 시작하여 n까지 1씩 증가시키면서 반복합니다.
    • ret *= num;
      • 각 반복마다 ret에 현재 num 값을 곱합니다.
      • 예를 들어, n이 5라면, 1×2×3×4×5의 결과가 차례로 누적됩니다.
  • 결과 반환

    • 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);
        • 현재 nn-1에 대한 팩토리얼 값을 곱하여 결과를 반환합니다.
  • 예시:

    • Factorial(5)는 5 4 3 2 1의 계산 과정을 거칩니다.

B. 구구단 출력 (중첩 반복문)

// for (int i = 0; i < 10; i++)
// {
//     for (int j = 0; j < 10; j++)
//     {
//         Console.WriteLine($"{i} * {j} = {i * j}");
//     }
//     Console.WriteLine();
// }
  • 목적:

    • 중첩 반복문을 이용해 0부터 9까지의 구구단(곱셈표)을 출력합니다.
  • 구현 방식:

    • 외부 반복문 (i):
      • 0부터 9까지 반복하며 각 단(구구단의 첫 번째 숫자)을 나타냅니다.
    • 내부 반복문 (j):
      • 0부터 9까지 반복하며 각 단의 곱셈 결과를 출력합니다.
    • 출력 형식:
      • 각 곱셈은 "i * j = 결과" 형태로 출력되고, 외부 루프마다 줄바꿈을 추가하여 단 사이의 구분을 명확히 합니다.

C. 별 찍기 (중첩 반복문)

// for (int i = 0; i < 5; i++)
// {
//     for (int j = 0; j <= i; j++)
//     {
//         Console.Write("*");
//     }
//     Console.WriteLine();
// }
  • 목적:

    • 중첩 반복문을 이용해 별(*) 패턴을 출력합니다.
  • 구현 방식:

    • 외부 반복문 (i):
      • 0부터 4까지 반복하며 출력할 줄의 수를 결정합니다.
    • 내부 반복문 (j):
      • 0부터 i까지 반복하며 해당 줄에 출력할 별의 개수를 결정합니다.
    • 결과:
      • 첫 번째 줄에는 별 1개, 두 번째 줄에는 별 2개, …, 다섯 번째 줄에는 별 5개가 출력되어 피라미드 형태의 패턴이 만들어집니다.

profile
李家네_공부방

0개의 댓글