개발/알고리즘

2745_진법변환

송디 2020. 11. 18. 16:16

www.acmicpc.net/problem/2745

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

진법 변환 된 것을 10진법 수로 바꾸는 것이다. 

정말 간단한 문제이지만 (기존 진법)^n으로 바꾸지 못해서 어려움을 겪었다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<math.h>
 
using namespace std;
 
int main(void){
    string s;
    int b, ans, len, i;
 
    cin >> s >> b;
    ans = 0; i = 0;len = 0;
    for(char c : s) len++;
    while(len > i) {
        if(s[(len - 1- i] >= '0' && s[(len - 1- i] <= '9')
            ans += (s[(len - 1- i] - '0'* pow(b, i);
        else ans += ((s[(len - 1- i] - 'A'+ 10* pow(b, i);
        i++;
    }
    cout << ans;
}
 
cs
728x90

'개발 > 알고리즘' 카테고리의 다른 글

6588_골드바흐의 추측  (0) 2020.11.26
1373_이진수팔진수  (0) 2020.11.21
10799_쇠막대기  (0) 2020.11.16
10866_덱  (0) 2020.11.16
1158_요세푸스문제  (0) 2020.11.15