728x90
● [문제번호 11005] 진법 변환 2
https://www.acmicpc.net/problem/11005
● 알아야 할 것
: 진법을 변환하는 방법
: 재귀 함수
: 알파벳 대문자 출력을 위한 ASCII 코드
● 풀이 과정
: 문제를 계속 풀다보니 진법 변환은 재귀함수로 표현하는 것이 간결하고 이해하기 쉽다.
: base case 확인 → 재귀 → 출력 순서로 재귀함수를 구현한다.
또한 나머지 연산을 했을 때 10진법을 넘어가는 숫자를 위해 확인 작업이 필요하다.
● 주의 할 것
: 나머지 연산을 했을 때 10진법을 넘어가는 숫자는 ASCII 코드로 출력하면 된다.
● 참고 할 것
: 진수 변환에 대한 이해
https://m.blog.naver.com/icbanq/221727893563
● 풀이 코드
#include <bits/stdc++.h>
using namespace std;
int N, B;
// 진법 변환은 재귀함수로 호출하면 간결하게 구현 가능
void change(int n)
{
// 재귀 함수의 base case
if(n == 0)
return ;
// 재귀 후 출력
change(n / B);
// 10진법을 넘어가는 숫자는 알파벳 대문자로 표현
if(n % B < 10)
cout << n % B;
else
cout << (char)(n % B - 10 + 'A');
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
// 10진법 수 와 변환할 진법 입력
cin >> N >> B;
// 진법 변환
change(N);
return 0;
}
● [백준] - [알고리즘 기초 1/2] - [303 - 수학 1 (참고)] 문제집
번호 | 문제 번호 | 문제 이름 | 풀이 링크 |
1 | 11005 | 진법 변환 2 | https://pirateturtle.tistory.com/195 |
2 | 2745 | 진법 변환 | https://pirateturtle.tistory.com/196 |
3 | 11576 | Base Conversion | https://pirateturtle.tistory.com/197 |
4 | 11653 | 소인수분해 | https://pirateturtle.tistory.com/198 |
728x90
'Baekjoon > [Code.plus] 알고리즘 기초 1/2' 카테고리의 다른 글
[BOJ/백준] 11653 소인수분해 (0) | 2021.07.29 |
---|---|
[BOJ/백준] 11576 Base Conversion (0) | 2021.07.29 |
[BOJ/백준] 2745 진법 변환 (0) | 2021.07.29 |
[BOJ/백준] 17103 골드바흐 파티션 (0) | 2021.07.29 |
[BOJ/백준] 2089 -2진수 (0) | 2021.07.29 |
[BOJ/백준] 1212 8진수 2진수 (0) | 2021.07.29 |
[BOJ/백준] 1373 2진수 8진수 (0) | 2021.07.29 |
댓글