728x90
반응형
2. 재귀함수를 이용한 이진수 출력
10진수 N이 입력되면 2진수로 변환해 출력하는 프로그램을 작성하세요
(단, 재귀함수를 이용해 출력)
입력설명
첫 번째 줄에 10진수 N(1<=N<=1,000)이 주어집니다.
출력설명
첫 번째 줄에 이진수를 출력하세요.
입력예제
11
출력예제
1011
#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 Recursive02 {
//이진수 출력
//10진수 입력시 2진수로 변환해 출력
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/2);
//10진수 n을 2로 나누어 ->만약 4라면 -> 2 -> 1 -> 0 -> 4%2 =0,2%2=0, 1%2=1, -> 100
System.out.print(n%2);
}
}
}
728x90
반응형
'Java > Java 알고리즘 인프런' 카테고리의 다른 글
[Ch.07 - Recursive] 04. 피보나치 수열 (+메모이제이션) # (0) | 2022.07.18 |
---|---|
[Ch.07 - Recursive] 03. 팩토리얼 (0) | 2022.07.18 |
[Ch.07 - Recursive] 01. 재귀함수 (0) | 2022.07.18 |
[Ch.09 - Greedy] 04. 최대 수입 스케줄 (0) | 2022.07.18 |
[Ch.09 - Greedy] 03. 결혼식 ### (0) | 2022.07.16 |