[Code Tree - Novice Mid] 02-1. 재귀함수: 값을 반환하지 않는 재귀함수
JAVA 문법으로 작성함.
Novice Mid: 02. 재귀함수 - 1
값을 반환하지 않는 재귀함수
1. 반복 출력하기 2
=> 정수 N이 주어지면 재귀함수를 이용해서 문자열 “HelloWorld”를 N번 출력하는 프로그램
조건: 1 ≤ N ≤ 20
코드:
import java.util.Scanner;
public class Main {
// 1부터 n번째 줄까지 문자열을 출력하는 함수
public static void printString(int n) {
if(n == 0)
return;
printString(n - 1);
System.out.println("HelloWorld");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
printString(n);
}
}
입력:
4
출력:
HelloWorld
HelloWorld
HelloWorld
HelloWorld
2. 숫자 차례로 출력하기
=> 정수 N이 주어지면 재귀함수를 2개 작성하여 첫 번째 재귀함수를 이용하여 1부터 N까지 숫자를 차례대로 출력하고, 두 번째 재귀함수를 이용하여 N부터 1까지 차례로 출력하는 프로그램
조건: 1 ≤ N ≤ 100
코드:
import java.util.Scanner;
public class Main {
public static void printNumber1(int n) {
if(n == 0)
return;
printNumber1(n - 1);
System.out.print(n + " ");
}
public static void printNumber2(int n) {
if(n == 0)
return;
System.out.print(n + " ");
printNumber2(n - 1);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 1~7까지 출력하는 함수
printNumber1(n);
System.out.println();
// 7~1까지 출력하는 함수
printNumber2(n);
}
}
입력:
7
출력:
1 2 3 4 5 6 7
7 6 5 4 3 2 1
3. 재귀함수를 이용한 별 출력
=> 1번째 N번째 줄까지 별 출력을 다음 모양으로 재귀함수를 이용해 출력하는 프로그램
조건: 1 ≤ n ≤ 100
코드:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
printStar(n);
}
// 1부터 n번째 줄까지 별을 출력하는 함수
public static void printStar(int n) {
if(n == 0)
return;
printStar(n - 1); // 1부터 n - 1번째 줄까지 출력하는 함수
for(int i = 0; i < n; i++)
System.out.print("*");
System.out.println();
}
}
입력:
5
출력:
*
**
***
****
*****
4. 재귀함수의 꽃
=> N이 주어지면 재귀함수를 단 하나만 이용하여 다음과 같이 출력하는 프로그램
조건: 1 ≤ n ≤ 100
코드:
import java.util.Scanner;
public class Main {
public static void printRecursive(int n) {
if (n > 0) {
System.out.print(n + " ");
printRecursive(n - 1);
System.out.print(n + " ");
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
printRecursive(n);
}
}
입력:
5
출력:
5 4 3 2 1 1 2 3 4 5
6. 재귀함수를 이용한 별 출력 2
=> 정수 n의 값을 입력받아 별 출력을 다음 모양으로 재귀함수를 이용해 출력하는 프로그
조건: 1 ≤ N ≤ 100
코드:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
printStar(n);
}
public static void printStar(int n) {
if(n == 0)
return;
for(int i = 0; i < n; i++)
System.out.print("* ");
System.out.println();
printStar(n - 1);
for(int i = 0; i < n; i++)
System.out.print("* ");
System.out.println();
}
}
입력:
5
출력:
* * * * *
* * * *
* * *
* *
*
*
* *
* * *
* * * *
* * * * *