[순환] Recursion Thinking - 순환적으로 사고하기

2023. 7. 19. 15:24기타(이론)/인프런 - 알고리즘

2진수로 변환하여 출력하기

void printInBinary(int n) {
    if (n < 2)
        printf("%d", n); //마지막에 최종적으로 n을 출력한다. n은 0 또는 1
    else {
        printInBinary(n / 2); //n을 2로 나눈 몫을 먼저 2진수로 변환하여 인쇄한 후
        printf("%d", n % 2); //n을 2로 나눈 나머지를 인쇄한다
    }
}

 

배열의 합 구하기

int sum(int n, int data[]) {
    if (n <= 0)
        return 0;
    else
        return sum(n - 1, data) + data[n - 1];
}

데이터 파일로부터 n개의 정수 읽어오기

import java.util.Scanner;
public class Data {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] data = new int[100];
		
		readFrom(sc.nextInt(),data,sc);
		
		sc.close();
	}
	
	public static void readFrom(int n,int[] data,Scanner sc) {
		if(n==0)
			return;
		else {
			readFrom(n-1,data,sc);
			data[n-1]=sc.nextInt();
			System.out.println(data[n-1]);
		}
	}

}

 

Recursion VS Iteration(반복문)

 

[무료] 영리한 프로그래밍을 위한 알고리즘 강좌 - 인프런 | 강의

영리하게 프로그래밍을 할 수 있기 위한 기본 소양인 '알고리즘'을 배우고 응용하는 방법을 배웁니다., 개발자라면 꼭 알아야 할 알고리즘 입문! [사진] 1. 강의 소개 부경대학교 IT융합응용공학

www.inflearn.com