알고리즘 종류 : 재귀
이진수 변환
시간 제한메모리 제한제출정답맞은 사람정답 비율
시간제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
1 초 | 256 MB | 3999 | 2054 | 1776 | 54.479% |
문제
자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)
출력
N을 이진수로 바꿔서 출력한다. 이진수는 0으로 시작하면 안 된다.
예제 입력 1 복사
53
예제 출력 1 복사
110101
#include <cstdio>
using namespace std;
void getBinary(long N) {
if(N == 1) {
printf("%ld", N % 2);
return;
}
getBinary(N / 2);
printf("%ld", N % 2);
}
int main()
{
long N;
scanf("%ld", &N);
getBinary(N);
return 0;
}
종료조건 없이 시도하고 싶다면
이렇게도 가능하다!
#include <cstdio>
using namespace std;
void getBinary(long N) {
if(N != 0) {
getBinary(N / 2);
printf("%ld", N % 2);
}
}
int main()
{
long N;
scanf("%ld", &N);
getBinary(N);
return 0;
}
시간 : 0ms
메모리 : 1116 KB
참고)
import java.util.Scanner;
public class Main{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
Long N = sc.nextLong();
getBinary(N);
}
private static void getBinary(Long N) {
if(N != 0) {
getBinary(N/2);
System.out.print(N%2);
}
}
}
출처
- 문제를 만든 사람: baekjoon
'알고리즘' 카테고리의 다른 글
백트래킹/Dessert USACO 2002 poj 1950 (0) | 2021.11.22 |
---|---|
기본정수론/벌집 백준 2292번 (0) | 2021.11.16 |
투포인터/수들의 합 5 - 백준 2018번 (0) | 2021.11.07 |
문자열/문자열 압축 - 2020 KAKAO BLIND RECRUITMENT (0) | 2021.10.17 |
문자열/큰 수 덧셈 - 백준 10757번 (0) | 2021.10.09 |