티스토리 뷰
X진수로 표현된 수 number를 Y진수로 표현하기.
옛날에 학교에서는 큰 수의 연산을 진행하기 위한 NaryBigNum을 한 적 있었는데 그 때는 10진수로 변환해서 계산하면 overflow되는 상황이 많았다. 근데 뭐 진수 변환하는데는 10진수를 중간 임시 변수로 써도 되지 않을까.. 10진수로 한 번 변환하면 int와 관련된 연산들을 다 쓸 수 있어서 많이 편하고 일반성도 있으니까..
그래서 알고리즘은 이렇게 짰다.
1. X진수로표현된 수를 10진수로 표현(temp)
2. temp가 Y진수로 몇 자리 수인지 파악(N)
3. Y진수로 표현
그 과정에서 char->int, int->char연산을 쉽게 하기 위해 따로 함수 2개를 작성했다.
#include<iostream>
using namespace std;
//'A':65 '0':48 in ASCII
int ASCIIDecode(char X) {
return (X >= 65) ? int(X - 55) : int(X-48);
}
char ASCIIEncode(int X) {
return (X >= 10) ? char(X + 55) : char(X +48);
}
//number는 X진법의 수, 그것을 Y진법으로 Print하라
//2<=X,Y<=36;
void PrintXtoY(string number, int X, int Y) {
int temp = 0, N = 0, Q = 0;
for (int i = 0; i < number.length(); i++) temp += ASCIIDecode(number[number.length() - 1 - i]) * pow(X, i);
for (int temp2 = temp; temp2 != 0; N++) temp2 = temp2 / Y;
for (int i = N-1; i >= 0; i--) {;
cout << ASCIIEncode(Q = int(temp / (pow(Y, i))));
temp = temp - Q * pow(Y, i);
}
}
int main() {
string A = "FF";
PrintXtoY(A, 16, 10);
cout << endl;
string B = "99";
PrintXtoY(B, 10, 16);
cout << endl;
string C = "11101"; //2진수: 십진수로 29
PrintXtoY(C, 2, 16);
cout << endl;
}
for문 3개로 했는데 더 간단하게 될 수도? N을 굳이 구해야 하나 싶기는 하다
'기초 알고리즘 문제 풀이' 카테고리의 다른 글
7. UVa-11498 Divison of Nlogonia (0) | 2020.02.18 |
---|---|
6. UVa-11172 Relational Operator (0) | 2020.02.18 |
4. All possible subset 문제 (0) | 2020.02.18 |
3. 임의의 정수 sequence에 대해 중복제거 정렬 sequence출력 (0) | 2020.02.18 |
2. 주어진 날짜에 대한 요일 출력 (0) | 2020.02.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 사진구조
- Logistic Regression
- CNN
- 신경망
- 영상처리
- 컴퓨터과학
- 매트랩 함수
- 딥러닝
- 자연어 처리
- 컴퓨터 과학
- gradient descent
- NLP
- rnn
- 신호 및 시스템
- 이미지
- 연속 신호
- RGB이미지
- 이미지처리
- CS
- Andrew ng
- 영상구조
- 매트랩
- 인덱스 이미지
- 밑바닥부터 시작하는 딥러닝
- 순환 신경망
- ML
- 머신 러닝
- 이산 신호
- Neural Network
- 머신러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함