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개)