본문 바로가기
-----ETC-----/C++ 마스터 시리즈

[C++ 마스터] Day 7: 함수와 재귀

by cogito21_cpp 2024. 8. 1.
반응형

함수 (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++로 넘어가 배열과 문자열에 대해 다룰 것입니다.

 

내일은 "배열과 문자열"에 대해 다룰 예정입니다. 질문이나 피드백이 있으면 댓글로 남겨 주세요!

반응형