[Algorithme] 진법변환

gunggme·2023년 10월 28일

알고리즘

목록 보기
2/42

한번 보자

이것을 풀려면 기본적으로 알아야 되는 것이 있다. 그것은 바로 문자열에 문자열 0을 빼면 뺀 알파벳이 몇번째 알파벳인지 알 수 있다. A~Z까지의 수는 A는 17 B는 18... 이런시긍로 나열이 되어있는데 이것을 내가 원하는 방법으로 변환시켜야된다. 내가 원하는 방법은 A = 0, B=1 ... Z=35이런식으로 변환시켜줘야한다.
한번 생각해보자

생각해보는것

  1. 입력받은 문자열의 순서대로 계산시작
  2. 0번째 자리부터 int값으로 변환후 0~35까지의 수로 변환 시키기
  3. 변환 시킨수를 n^i와 곱한후 총합구하기

SourceCode

#include<iostream>
#include<string>
#include <algorithm>
#include<cmath>

using namespace std;

int main() {
	string b;
	int n, sum(0);
	cin >> b >> n;
	for (int i = 0;  i  <  b.length();  i++) {
		int temp = b[b.length() - (i + 1)];
		if ('0' <= temp && temp <= '9') {
			temp = temp - '0';
		}
		else {
			temp = temp + 10 - 'A';
		}
		sum += (temp * (int)pow(n, i));
	}

	cout << sum;
	return 0;
}
profile
안녕하세요!

0개의 댓글