C언어/참고서: C언어 콘서트

C언어 41차시 재귀함수 알고리즘 연습하기 +자료형 변형

Olivia-BlackCherry 2023. 4. 4. 16:38

1. 기본 재귀함수 알고리즘

아래의 코드를 보고 출력 결과를 예상하자.

♧코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void asterisk(int);

int main(void) {
	asterisk(5);
}

void asterisk(int i) {
	if (i > 1) {
		asterisk(i / 2);
	}
	printf("*");
}

//olivia_codingschool

<과정>

♣결과

*** 3개

 

 

2. 재귀함수 2개

♧코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void asterisk(int);

int main(void) {
	asterisk(5);
}

void asterisk(int i) {
	if (i > 1) {
		asterisk(i / 2);
		asterisk(i / 2);
	}
	printf("*");
}
//olivia_codingschool

<과정>

<결과>

*******(7개)

 

 

3. 변형

♣결과

 

♧코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void asterisk(int);

int main(void) {
	asterisk(5);
}

void asterisk(int i) {
	if (i > 1) {
		asterisk(i / 2);
		asterisk(i / 3);
	}
	printf("*");
}
//olivia_codingschool

<과정>

<결과>

*****(5개)

 

4. 파라미터 자료형을 double로 바꾸기

♧코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void asterisk(double);

int main(void) {
	asterisk(5.0);
}

void asterisk(double i) {
	if (i > 1) {
		asterisk(i / 2);
	}
	printf("*");
}
//olivia_codingschool

♣결과

**** (4개)

 

 

5. 변형

♧코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void asterisk(double);

int main(void) {
	asterisk(5.0);
}

void asterisk(double i) {
	if (i > 1) {
		asterisk(i / 2);
		asterisk(i / 3);
	}
	printf("*");
}

//olivia_codingschool

♣결과

*********(9개)