일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 연결요소
- getline
- 매크로
- correlation coefficient
- 프레임워크와 라이브러리의 차이
- 자료구조
- Django의 편의성
- 2557
- 장고란
- 입출력 패턴
- iOS14
- 이분그래프
- 구조체와 클래스의 공통점 및 차이점
- double ended queue
- UI한글변경
- 백준
- string 함수
- 시간복잡도
- EOF
- 표준 입출력
- scanf
- 입/출력
- 엑셀
- Django Nodejs 차이점
- c++
- k-eta
- string 메소드
- 알고리즘 공부방법
- Django란
- vscode
Archives
- Today
- Total
Storage Gonie
(10) [C++, Java] 백준 No.11576 : Base Conversion 본문
반응형
문제
풀이
자세한 풀이 :
# C++
- 10진수 -> B진수 변환하는 부분을 string으로 처리했었는데, 벡터 방식으로 바꾼 이유는 2자리 수의 경우 reverse를 해주면
앞뒤가 바껴버리기 때문에 문제가 발생할 수 있기 때문이다. 그러므로 벡터 방식으로 처리하자.
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main(){
int A, B;
int count;
int nums[30];
// 입력받는 부분
cin >> A >> B;
cin >> count;
for (int i = 0; i < count; i++)
cin >> nums[i];
// A진수 -> 10진수 변환하는 부분
int ans = 0;
for (int i = 0; i < count; i++)
ans = ans*A + nums[i];
// 10진수 -> B진수 변환하는 부분
vector<int> vec;
int n = ans;
while(n != 0)
{
vec.push_back(n%B);
n /= B;
}
reverse(vec.begin(), vec.end());
for(int i = 0; i < vec.size(); i++){
if( i == 0)
cout << vec[i];
else
cout << ' ' << vec[i];
}
}
# C++
#include <iostream>
using namespace std;
void convert(int num, int base)
{
if (num == 0)
return;
convert(num/base, base);
printf("%d ",num%base);
}
int main() {
int a,b;
cin >> a >> b;
int n;
cin >> n;
int ans = 0;
//a진수를 10진수로 변환하는 것
for (int i=0; i<n; i++) {
int x;
cin >> x;
ans = ans * a + x;
}
convert(ans,b);
}
# Java
import java.util.*;
public class Main {
public static void convert(int num, int base) {
if (num == 0) {
return;
}
convert(num/base, base);
System.out.print(num%base + " ");
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int n = sc.nextInt();
int ans = 0;
for (int i = 0; i<n; i++) {
int x = sc.nextInt();
ans = ans * a + x;
}
convert(ans, b);
System.out.println();
}
}
반응형
'알고리즘 > 백준풀이7. 수학' 카테고리의 다른 글
(12) [C++, Java] 백준 No.1929 : 소수 구하기 (0) | 2019.05.07 |
---|---|
(11) [C++, Java] 백준 No.1978 : 소수 찾기 (0) | 2019.05.07 |
(9) [C++, Java] 백준 No.2089 : -2진수 (0) | 2019.05.07 |
(8) [C++, Java] 백준 No.1212 : 8진수 2진수 (2) | 2019.05.07 |
(7) [C++, Java] 백준 No.1373 : 2진수 8진수 (0) | 2019.05.06 |
Comments