728x90
반응형
1. 재귀함수
자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지 출력하는 프로그램을 작성하세요.
입력설명
첫 번째 줄은 정수 N(3<=N<=10)이 입력된다.
출력설명
첫째 줄에 출력한다.
입력예제
3
출력예제
1 2 3
#main 함수, DFS 함수, 솔루션함수
- main 함수 : int n변수를 입력받아, solution(n)을 통해 함수 호출
- solution 함수 : 파라미터로 받은 n을 이용해 재귀함수 호출
- DFS 함수 : n==0이 될때까지 재귀함수 호출
package recursive.ch07;
import java.util.Scanner;
public class Recursive02 {
//이진수 출력
//10진수 입력시 2진수로 변환해 출력
public static void main(String[] args) {
Recursive02 T = new Recursive02();
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
T.solution(n);
kb.close();
}
public void solution(int n) {
DFS(n);
}
public void DFS(int n) {
if(n==0)
return;
else {
DFS(n/2);
//10진수 n을 2로 나누어 ->만약 4라면 -> 2 -> 1 -> 0 -> 4%2 =0,2%2=0, 1%2=1, -> 100
System.out.print(n%2);
}
}
}
solution함수 없어도
->DFS함수에서 재귀함수 구현 가능
package recursive.ch07;
import java.util.Scanner;
public class Recursive01 {
//재귀함수 -> 함수 3개 필요함, 메인함수, 호출함수, 솔루션함수
//1부터 N까지 출력
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
DFS(n);
kb.close();
}
static void DFS(int n) {
if(n==0)
return;
//꼭 필요한 구문 -> 반환하기 위해
else {
DFS(n-1);
//DFS(3) -> DFS(2) -> DFS(1) -> DFS(0) ->return -> print(1)print(2)print(3)
System.out.print(n+" ");
}
}
}
728x90
반응형
'Java > Java 알고리즘 인프런' 카테고리의 다른 글
[Ch.07 - Recursive] 03. 팩토리얼 (0) | 2022.07.18 |
---|---|
[Ch.07 - Recursive] 02. 재귀함수를 이용한 이진수 출력 (0) | 2022.07.18 |
[Ch.09 - Greedy] 04. 최대 수입 스케줄 (0) | 2022.07.18 |
[Ch.09 - Greedy] 03. 결혼식 ### (0) | 2022.07.16 |
[Ch.09 - Greedy] 02. 회의실 배정 (0) | 2022.07.15 |