일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SECS/GEM
- SECS
- spotify
- C++
- Spring JPA
- SWEA
- Spotify Api
- regression
- Spring
- python
- Computer Science
- 자바
- 프로그래머스
- programmers
- 회원가입
- 회귀
- CS
- MYSQL
- spring boot
- 파이썬
- c
- SECS-II
- 스포티파이
- 백준
- SW Expert Academy
- java
- linux
- modern c++
- Gem
- Baekjoon
Archives
- Today
- Total
비버놀로지
[JUNGOL 정올] 1534 10진수를 2,8,16진수로 (C++) 본문
728x90
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=806&sca=2040
제한시간1000 ms 메모리제한32 MB 해결횟수851 회 시도횟수1695 회
문제
10진수를 입력 받아서 2, 8, 16진수로 바꾸어 출력하는 프로그램을 작성하시오.
입력형식
입력의 첫줄에는 10진수 N(1≤N≤100,000)과 바꿀 진수 B(2, 8, 16)가 공백으로 구분하여 입력된다.
16진수에서 10이상의 수는 순서대로 'A', 'B', 'C', 'D', 'E', 'F'로 나타낸다.
출력형식
입력받은 10진수를 B진수로 바꾸어 출력한다.
입력 예27 2 |
출력 예11011 |
입력 예27 16 |
출력 예1B |
입력 예27 8 |
출력 예33 |
출처
jungol
주어진 숫자를 0이 될때까지 나눠주면서 나오는 나머지 값을 저장하는 방식으로 문제를 해결했다.
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
int N;
int B;
string answer = "";
cin >> N >> B;
// 나머지를 이용하여 문제를 해결한다.
// 주어진 값이 0이 될때까지 나오는 나머지는 string에 붙여준다.
while (N > 0) {
if (N%B >= 10) {
answer.append(to_string('A' + N % B - 10));
}
else {
answer.append(to_string(N%B));
}
N /= B;
}
// 만들어진 결과값을 역순으로 돌려준다.
reverse(answer.begin(), answer.end());
cout << answer;
return 0;
}
728x90
'ALGORITM > C C++' 카테고리의 다른 글
[Programmers 프로그래머스] 42860 조이스틱 (C 언어) (0) | 2024.12.22 |
---|---|
[JUNGOL 정올] 2514 문자열 찾기 (C++) (0) | 2023.01.12 |
[JUNGOL 정올] 3116 긴 자리 진법 변환 (C++) (0) | 2023.01.12 |
[JUNGOL 정올] 2809 약수 (C++) (0) | 2023.01.12 |
[Programmers 프로그래머스] 42860 조이스틱 (C/C++) (0) | 2021.04.01 |
Comments