함수 (Functions)
함수는 특정 작업을 수행하는 코드 블록입니다. 함수를 사용하면 코드의 재사용성을 높이고, 프로그램을 더 구조화된 방식으로 작성할 수 있습니다.
1. 함수 선언과 정의
함수를 사용하려면 먼저 함수를 선언하고, 정의해야 합니다.
함수 선언:
함수의 이름, 매개변수, 반환 타입을 컴파일러에게 알려줍니다.
int add(int a, int b); // 함수 선언
함수 정의:
함수가 실제로 수행할 작업을 작성합니다.
int add(int a, int b) { // 함수 정의
return a + b;
}
함수 호출:
함수를 호출하여 실행합니다.
int result = add(3, 4); // 함수 호출
cout << "Result: " << result << endl;
2. 함수의 반환 타입
함수는 작업을 수행한 후 값을 반환할 수 있습니다. 반환 타입은 함수가 반환하는 값의 타입을 나타냅니다. 반환할 값이 없으면 void
를 사용합니다.
void printHello() {
cout << "Hello, World!" << endl;
}
3. 매개변수 (Parameters)
함수는 매개변수를 통해 데이터를 전달받을 수 있습니다. 매개변수는 함수 호출 시 제공하는 인수(argument)로 초기화됩니다.
void printSum(int a, int b) {
cout << "Sum: " << a + b << endl;
}
재귀 (Recursion)
재귀는 함수가 자기 자신을 호출하는 것을 말합니다. 재귀 함수는 보통 종료 조건이 있어야 무한 반복을 피할 수 있습니다.
1. 재귀 함수
재귀 함수는 자기 자신을 호출합니다.
void recursiveFunction(int count) {
if (count <= 0) {
return;
}
cout << "Count: " << count << endl;
recursiveFunction(count - 1);
}
2. 팩토리얼 계산 (Factorial)
팩토리얼은 재귀적으로 계산할 수 있는 좋은 예제입니다.
int factorial(int n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
예제 문제
문제 1: 두 수의 합을 계산하는 함수 작성
두 개의 정수를 입력받아 그 합을 반환하는 함수를 작성하고, 이를 호출하여 결과를 출력하세요.
해설:
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
int main() {
int num1, num2;
cout << "Enter two numbers: ";
cin >> num1 >> num2;
int sum = add(num1, num2);
cout << "Sum: " << sum << endl;
return 0;
}
이 프로그램은 add
함수를 사용하여 두 수의 합을 계산하고 출력합니다.
문제 2: 숫자가 짝수인지 홀수인지를 판별하는 함수 작성
정수를 입력받아 그 수가 짝수인지 홀수인지를 판별하는 함수를 작성하고, 결과를 출력하세요.
해설:
#include <iostream>
using namespace std;
bool isEven(int num) {
return (num % 2 == 0);
}
int main() {
int number;
cout << "Enter a number: ";
cin >> number;
if (isEven(number)) {
cout << number << " is even." << endl;
} else {
cout << number << " is odd." << endl;
}
return 0;
}
이 프로그램은 isEven
함수를 사용하여 숫자가 짝수인지 홀수인지를 판별하고 출력합니다.
문제 3: 재귀를 사용하여 피보나치 수열 계산
재귀를 사용하여 주어진 숫자의 피보나치 수를 계산하는 프로그램을 작성하세요.
해설:
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int number;
cout << "Enter a number: ";
cin >> number;
cout << "Fibonacci number: " << fibonacci(number) << endl;
return 0;
}
이 프로그램은 fibonacci
함수를 사용하여 주어진 숫자의 피보나치 수를 계산하고 출력합니다.
다음 단계
7일차의 목표는 C++의 함수와 재귀에 대해 학습하는 것이었습니다. 다음 날부터는 중급 C++로 넘어가 배열과 문자열에 대해 다룰 것입니다.
내일은 "배열과 문자열"에 대해 다룰 예정입니다. 질문이나 피드백이 있으면 댓글로 남겨 주세요!
'-----ETC----- > C++ 마스터 시리즈' 카테고리의 다른 글
[C++ 마스터] Day 9: 포인터와 참조자 (0) | 2024.08.01 |
---|---|
[C++ 마스터] Day 10: 동적 메모리 할당 (new, delete) (0) | 2024.08.01 |
[C++ 마스터] Day 8: 배열과 문자열 (0) | 2024.08.01 |
[C++ 마스터] Day 5: 조건문과 제어 구조 (0) | 2024.08.01 |
[C++ 마스터] Day 6: 반복문 (for, while, do-while) (0) | 2024.08.01 |