챕터3. 실습문제
2025. 3. 27. 23:43ㆍProgramming Languages/C++
3.5 실습 문제
문제 1: 구구단 출력
사용자로부터 단수를 입력받아 해당 구구단을 출력하는 프로그램을 작성하세요.
#include <iostream>
int main() {
int dan;
std::cout << "출력할 구구단 단수를 입력하세요 (2-9): ";
std::cin >> dan;
if (dan < 2 || dan > 9) {
std::cout << "2에서 9 사이의 숫자를 입력하세요." << std::endl;
return 1;
}
std::cout << dan << "단 구구단:" << std::endl;
for (int i = 1; i <= 9; i++) {
std::cout << dan << " x " << i << " = " << (dan * i) << std::endl;
}
return 0;
}
문제 2: 소수 판별
사용자로부터 양의 정수를 입력받아 소수(Prime Number)인지 판별하는 프로그램을 작성하세요.
#include <iostream>
#include <cmath>
int main() {
int number;
bool isPrime = true;
std::cout << "양의 정수를 입력하세요: ";
std::cin >> number;
if (number <= 1) {
isPrime = false;
} else if (number == 2) {
isPrime = true;
} else if (number % 2 == 0) {
isPrime = false;
} else {
// 홀수 약수만 검사 (최적화)
int sqrtNum = static_cast<int>(std::sqrt(number));
for (int i = 3; i <= sqrtNum; i += 2) {
if (number % i == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
std::cout << number << "은(는) 소수입니다." << std::endl;
} else {
std::cout << number << "은(는) 소수가 아닙니다." << std::endl;
}
return 0;
}
문제 3: 간단한 계산기
사용자로부터 두 개의 숫자와 연산자(+, -, *, /)를 입력받아 계산 결과를 출력하는 프로그램을 작성하세요. 메뉴를 통해 반복해서 계산할 수 있도록 하고 사용자가 종료를 선택할 때까지 프로그램이 실행되도록 구현하세요.
#include <iostream>
int main() {
double num1, num2, result;
char op;
char choice;
do {
std::cout << "\n간단한 계산기\n";
std::cout << "첫 번째 숫자를 입력하세요: ";
std::cin >> num1;
std::cout << "연산자를 입력하세요 (+, -, *, /): ";
std::cin >> op;
std::cout << "두 번째 숫자를 입력하세요: ";
std::cin >> num2;
switch (op) {
case '+':
result = num1 + num2;
std::cout << num1 << " + " << num2 << " = " << result << std::endl;
break;
case '-':
result = num1 - num2;
std::cout << num1 << " - " << num2 << " = " << result << std::endl;
break;
case '*':
result = num1 * num2;
std::cout << num1 << " * " << num2 << " = " << result << std::endl;
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
std::cout << num1 << " / " << num2 << " = " << result << std::endl;
} else {
std::cout << "오류: 0으로 나눌 수 없습니다." << std::endl;
}
break;
default:
std::cout << "오류: 잘못된 연산자입니다." << std::endl;
}
std::cout << "\n계속하시겠습니까? (y/n): ";
std::cin >> choice;
} while (choice == 'y' || choice == 'Y');
std::cout << "프로그램을 종료합니다." << std::endl;
return 0;
}
문제 4: 피보나치 수열
사용자로부터 정수 n을 입력받아 n번째까지의 피보나치 수열을 출력하는 프로그램을 작성하세요.
#include <iostream>
int main() {
int n;
std::cout << "출력할 피보나치 수열의 항 수를 입력하세요: ";
std::cin >> n;
if (n <= 0) {
std::cout << "양의 정수를 입력하세요." << std::endl;
return 1;
}
std::cout << "피보나치 수열 (처음 " << n << "항): ";
long long a = 0, b = 1, c;
if (n >= 1) {
std::cout << a;
}
if (n >= 2) {
std::cout << ", " << b;
}
for (int i = 3; i <= n; i++) {
c = a + b;
std::cout << ", " << c;
a = b;
b = c;
}
std::cout << std::endl;
return 0;
}
'Programming Languages > C++' 카테고리의 다른 글
| 함수 포인터와 함수 객체 (0) | 2025.03.27 |
|---|---|
| 함수와 재귀 (0) | 2025.03.27 |
| 조건부 컴파일 (0) | 2025.03.27 |
| 제어 흐름 변경 (0) | 2025.03.27 |
| 반복문 (0) | 2025.03.27 |