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(0, 2) == "0x") {
cout << stoi(number, nullptr, 16);
}
// 8진수
else if (number.substr(0, 1) == "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
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 10174번 : 팰린드롬 (C++) (0) | 2023.02.07 |
---|---|
[백준] 11966번 : 2의 제곱인가? (C++) (0) | 2023.02.07 |
[백준] 10384번 : 팬그램 (C++) (0) | 2023.02.07 |
[백준] 2161번 : 카드1 (C++) (0) | 2023.02.07 |
[백준] 11637번 : 인기 투표 (C++) (0) | 2023.02.07 |