[C++] 테스트용 코드

2023. 2. 3. 00:37코딩테스트 Intro/C++

728x90

백준 17478번 제출 코드

한글 출력도 테스트 할 수 있음

#include <iostream>
using namespace std;

int recur(int n, int x)
{
	// n=5일 때 0번
	//n=4일 때 1번 x-n만큼
	//n=3일 때 2번
	//n,x 관계식 이용
	for (int i = 0; i < x - n; i++)
		cout << "____";
	cout << "\"재귀함수가 뭔가요?\"\n"; // 역슬래쉬 "로 큰따옴표 출력
	//n이라면 n+1번 나오는 문장...
	//결국 0일 때 탈출하게끔 해줘야지 n=3 2 1 0 => n+1=4 


	//횟수 세보고 n과의 연관성 찾고
	//조건으로 제외해주기!
	//아래 문장들은 n번만해주고 0을 전달하면 출력 안해준다.(끝에 가서 출력을 안해준다.)
	if (n != 0)
	{
		for (int i = 0; i < x - n; i++)
			cout << "____";
		cout << "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n";
		for (int i = 0; i < x - n; i++)
			cout << "____";
		cout << "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n";
		for (int i = 0; i < x - n; i++)
			cout << "____";
		cout << "그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"\n";
	}
	if (n > 0) {
		return  recur(n - 1,x);
	}
	else
	{
		return 1;
	}
}

int abn(int n) {
	//cout << "test용" << n<<"\n"; // 이거 되었다.
	
	for (int i = 0; i < n; i++)
	{
		cout << "____";
	} // recur의 경우 여기 for문을 반전 시켜서 거꾸로 출력되게끔 한다.
	cout << "라고 답변하였지.";
	if (n != 0)
	{
		cout << "\n";
	}
	if (n > 0) {
		return abn(n - 1);
	}
	else
		return 1;
}


int main(void) {
	int x;
	cin >> x;

	cout << "어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\n";
	//이하 asking
	recur(x, x);

	//이하 answer
	for (int i = 0; i < x; i++)
	{
		cout << "____";
	}
	cout << "\"재귀함수는 자기 자신을 호출하는 함수라네\"\n";
	abn(x); //_____________라고 답변하였지

}
728x90