티스토리 뷰

※ [Quest 3 - 2. 배열을 사용한 합계 및 평균 계산]은 추후 작업할 예정입니다.

 

  • 사용자로부터 입력받는 숫자의 팩토리얼을 계산하는 프로그램을 작성하세요.
    • 팩토리얼은 n!로 표시되며, 1 부터 n 까지의 모든 값의 곱입니다.
    • for, while, do-while문 중 하나를 활용하여 해결해 주세요.
    • Console.ReadLine()을 활용해서 기준 값을 입력 받아 진행해 주세요.

 

int a, i;
ulong result;

while (true)
{
    Console.Write("Enter a Number(0 is exit): ");
    a = Convert.ToInt32(Console.ReadLine());

    if (a == 0)
        break;
    
    else
    {
        result = 1;
        for (i = 1; i <= a; i++)
        {
            result *= (ulong)i;
        }
        
        Console.WriteLine($"Factorial of {a} is {result}\n");
    }
}

※ 결과값에 int를 사용하면 입력값이 16만 넘어도 Overflow 문제가 발생하기 때문에, ulong을 사용하여 구현하였습니다.

※ ulong도 22 부터는 Overflow가 발생합니다. 즉, 하단의 45는 Overflow 된 결과물입니다.

     ┗ checked를 사용하면 Overflow를 검출할 수 있으나, 결과 확인의 편의성을 위해서 해당 구문을 제외하였습니다.

※ 결과값을 편하게 확인하기 위해서 0을 입력하면 종료되는 반복 프로그램으로 제작하였습니다.

 

결과 창

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함