문제
원문: www.codeup.kr/problem.php?id=1034
[기초-출력변환] 8진 정수 1개 입력받아 10진수로 출력하기(설명)
C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 ��
www.codeup.kr
8진수로 입력된 정수 1개를 10진수로 바꾸어 출력해보자.
참고
%o로 입력받으면 8진수로 인식시켜 저장시킬 수 있다.
%d로 출력하면 10진수로 출력된다.
예시
int n;
scanf("%o", &n);
printf("%d", n);
(C언어에서 소스 코드 작성 시 0으로 시작하는 수는 8진수로 인식된다. int a = 013; // 10진수 11과 같은 값)
입력
8진 정수 1개가 입력된다.
13
출력
10진수로 바꾸어 출력한다.
11
Java 풀기
8진수를 10진수로 바꾸는 방법은 각 자리수에 8의 제곱수를 곱한다.

- 1의 자리는 8^0을 곱한다.
- 10의 자리는 8^1을 곱한다.
- ...
곱한 값을 모두 더하면 10진수로 변환이 된다.
주의. 문제에서는 입력값의 범위가 정해져있지 않지만, int 형보다 큰 수가 들어오는 테스트케이스가 있으므로, Long으로 받아야 함
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long num = Long.parseLong(br.readLine());
int sum = 0; // 결과값
int k = 0; // 자리수
while (num != 0) {
// 8의 제곱수를 곱한다. (8^0, 8^1, ....)
sum += (num % 10) * Math.pow(8, k);
// 자리수를 증가 시킨다.
k++;
num /= 10;
}
System.out.println(sum);
}
}
채점결과

위 풀이는 직접 풀어보고 채점까지 한 뒤에 확인하여 올린 코드입니다.
궁금한점이나 더 좋은 방법이 있다면 아래 댓글 달아주세요. 감사합니다.
관련 글
CodeUp Java로 기초 100제 풀어보기
문제의 저작권은 'CodeUp'에게 있습니다. 저작권 문제가 있는 경우, 바로 삭제하겠습니다. codeup.kr/index.php CodeUp ☆ 파이썬 다운로드 : 파이썬3 ☆ 무료 C언어 IDE : Code::blocks DEV C++ ☆ 추천 온라인..
memostack.tistory.com
'Algorithm > CodeUp' 카테고리의 다른 글
| CodeUp 1036번 - 영문자 1개 입력받아 10진수로 출력하기 (Java 풀이) (0) | 2020.10.23 |
|---|---|
| CodeUp 1035번 - 16진 정수 1개 입력받아 8진수로 출력하기 (Java 풀이) (0) | 2020.10.22 |
| CodeUp 1033번 - 10진 정수 입력받아 16진수로 출력하기2 (Java 풀이) (0) | 2020.10.21 |
| CodeUp 1032번 - 10진 정수 입력받아 16진수로 출력하기1 (Java 풀이) (0) | 2020.10.20 |
| CodeUp 1031번 - 10진 정수 1개 입력받아 8진수로 출력하기 (Java 풀이) (0) | 2020.10.20 |