본문 바로가기
Develop/백준 (Cpp)

[백준] 11816번 : 8진수, 10진수, 16진수 (C++)

by Tarra 2023. 2. 7.

11816번 : 8진수, 10진수, 16진수


문제 )

정수 X가 주어진다. 정수 X는 항상 8진수, 10진수, 16진수 중에 하나이다.

8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다.

X를 10진수로 바꿔서 출력하는 프로그램을 작성하시오.

 

 

입력 :

첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다.

 

 

출력 :

첫째 줄에 입력받은 X를 10진수로 바꿔서 출력한다.

 

 

 

 

 

풀이)

 

<stirng> STL의 stoi() 메서드를 사용했다.

 

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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string number;
    cin >> number;
 
    if (number.length() > 1) {
        // 16진수
        if (number.substr(02== "0x") {
            cout << stoi(number, nullptr, 16);
        }
        // 8진수
        else if (number.substr(01== "0") {
            cout << stoi(number, nullptr, 8);
        }
        // 10진수
        else {
            cout << number;
        }
    }
 
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/11816 

 

11816번: 8진수, 10진수, 16진수

첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다.

www.acmicpc.net