본문 바로가기

ALG/ALG Solve

C++) 백준 - 17478번 재귀함수가 뭔가요?

https://www.acmicpc.net/problem/17478

 

17478번: 재귀함수가 뭔가요?

평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;

int N;
void _func(int n){
    for(int i=0;i<n;i++){
        cout<<"____";
    }
}

void func(int n){
    _func(n);
    cout<<"\"재귀함수가 뭔가요?\"\n";
    if(n==N){
        _func(n);
        cout<<"\"재귀함수는 자기 자신을 호출하는 함수라네\"\n";
    }
    else{
        _func(n);
        cout<<"\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n";
        _func(n);
        cout<<"마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n";
        _func(n);
        cout<<"그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"\n";
        func(n+1);
    }
    _func(n);
    cout<<"라고 답변하였지.\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    
    cin>>N;
    cout<<"어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\n";
    func(0);

    return 0;
}

함수를 0부터 시작해 입력받은 N까지 재귀로 실행시킨다. 

'ALG > ALG Solve' 카테고리의 다른 글

C++) 백준 15650번 - N과 M(2)  (0) 2023.01.28
C++) 백준 1992번 - 쿼드트리  (0) 2023.01.27
C++) 백준 7562번 - 나이트의 이동  (0) 2023.01.23
C++) 백준 7569번 - 토마토  (0) 2023.01.23
C++) 백준 10026번 - 적록색약  (0) 2023.01.20