- 사용자로부터 입력받은 숫자의 팩토리얼을 계산하는 프로그램을 작성하세요.
- 팩토리얼은 n!로 표현되며, n! = n × (n-1) × (n-2) × ... × 1입니다.
- 예를 들어, 5! = 5 × 4 × 3 × 2 × 1 = 120입니다.
- for, while, do-while문 중 하나를 활용하여 해결해주세요.
- Console.ReadLind() 을 활용해서 출력 값을 출력해주세요.
Enter a number: 5
Factorial of 5 is 120
값을 입력받고, 입력받은 값의 팩토리얼값을 반환하는 프로그램을 작성해야합니다.
사용자로부터 값을 입력받을때, 줄넘김을 하지 않기 위해서 Console.Write를 사용합니다.
//사용자로부터 입력 받기
Console.Write("Enter a number : ");
string input = Console.ReadLine();
입력을 받으면 결과를 다음줄에 출력해야하기 때문에 ReadLine()을 사용해야 합니다.
입력받은 값을 정수형으로 변환해줍니다.
//입력값을 정수형으로 변환
int inputNumber = Convert.ToInt32(input);
만약 정수형을 입력하지 않을경우, 이 부분에서 오류가 발생하여 프로그램이 동작하지 않습니다.
정수형 이외의 입력시 작동을 원할경우, 예외처리를 해 줄 필요가 있습니다.
팩토리얼 계산을 저장할 변수를 선언하고 팩토리얼 계산을 실행합니다.
//결과값 선언, 0일경우 곱셈으로 0이 되기 때문에 1로 선언
int FactorialNum = 1;
//팩토리얼 계산
for(int i = 0; i < inputNumber; i++)
{
//자기자신에, 입력값 - 반복횟수 만큼 반복
FactorialNum *= (inputNumber - i);
}
팩토리얼 계산은 곱셈으로 실행하기 때문에, 초기값을 0으로 설정할경우 결과값이 0으로만 발생하게 됩니다.
따라서 초기값을 1로 설정해 줄 필요가 있습니다.
또한 입력값이 음수값인경우 반복문이 수행되지 않고 기본값인 1을 출력하게 됩니다.
마찬가지로, 입력한 값을 정수형으로 변환할 때 예외처리를 해 줄 필요가 있습니다.
마지막으로 결과값을 출력합니다.
//결과값 출력
Console.WriteLine($"Factorial of {inputNumber} is {FactorialNum}");
5을 입력하면 5의 팩토리얼값인 120을,
6을 입력하면 6의 팩터리얼값인 720을 출력하는것을 확인하실수 있습니다.
int inputNumber = (int.TryParse(input, out inputNumber)) ? inputNumber : -1;
//예외처리
if(inputNumber <= 0)
{
Console.WriteLine("Wrong Input");
return;
}
tryParse() 를 사용해 예외처리를 한 경우 입니다.
return을 사용해 잘못된 구문이 들어온 경우, Wrong Input 을 출력하고 프로그램이 종료되도록 처리하였습니다.
'사전캠프 > 달리기반' 카테고리의 다른 글
달리기반 Lv.2 배열 요소의 최대값과 최소값 찾기 (0) | 2024.08.14 |
---|---|
달리기반 Lv.2 이중 반복문을 사용한 구구단 출력 (0) | 2024.08.14 |
달리기반 Lv.2 숫자 맞추기 게임 (0) | 2024.08.14 |
달리기반 Lv.1 배열을 사용한 합계 및 평균 계산 (0) | 2024.08.13 |
달리기반Lv.1 기초문법 - 홀수 출력 (0) | 2024.08.13 |