cyphen156
백준-일반 수학1 2745 진법 변환 본문
N진의 수가 입력되면 10진법으로 변환하여 출력하는 프로그램
첫번째 입력으로는 수가
문자열 파싱할 줄 알면 쉽다.
제약사항
- 2 <= N <= 36
- -1,000,000,000 <= Result <= 1,000,000,000
주의 사항
최댓값이 큰 숫자이다.
하지만 32비트 자료형으로 표현가능하다.
C풀이
진법 변환_2745.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int power(int base, int exponent);
int main(void) {
char s[100];
int n, len, result = 0;
int nArray[100] = { 0 }; //원본 보존용 변환 정수형 배열
scanf("%s %d", s, &n);
for (len = 0; s[len] != '\0'; len++);
for (int i = 0; i < len; i++) {
if ('0' <= s[i] && s[i] <= '9')
nArray[i] = s[i] - '0';
else if ('A' <= s[i] && s[i] <= 'Z')
nArray[i] = s[i] - 'A' + 10;
}
for (int i = 0; i < len; i++) {
result += nArray[i] * power(n, len-i-1);
}
printf("%d", result);
return 0;
}
int power(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
CPP풀이
진법 변환_2745.cpp
/**
* 백준 진법 변환_2745
* N진의 수가 입력되면 10진법으로 변환하여 출력하는 프로그램
* 첫번째 입력으로는 수가
* 문자열 파싱할 줄 알면 쉽다.
*
* 제한사항
*********************************************
* 2 <= N <= 36 *
* -1,000,000,000 <= Result <= 1,000,000,000 *
*********************************************
*
*
*
* 주의
* 최댓값이 큰 숫자이다. 하지만 32비트 자료형으로 충분하다.
*
* 풀이시간 50분
*/
#include <iostream>
using namespace std;
int main(void)
{
string inputNumber;
int PositionalNumberSystem, changedNumber = 0;
cin >> inputNumber >> PositionalNumberSystem;
for (int i = 0; i < inputNumber.length(); ++i)
{
// 일단 문자를 숫자로 변환하기
// --> AToI
// 일단 ASCII 48만큼 빼면 숫자에 대한 처리 완료
// 0 ~ 9
int temp = inputNumber[i] - 48;
// 변환 값이 9보다 크면 진법수라는 것을 의미한다.
// -> :, ;, <, =, >, ?, @ 라는 아스키 값은 제외
// A ~ Z
if (temp > 9)
{
temp -= 7;
}
// 변환 완료된 숫자를 더해라
changedNumber = changedNumber * PositionalNumberSystem + temp;
}
cout << changedNumber << endl;
return 0;
}
모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.
Workspace/알고리듬 풀이 at main · cyphen156/Workspace
Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.
github.com
'컴퓨터공학 > 알고리듬 풀이' 카테고리의 다른 글
백준-일반 수학 1 2720 세탁소 사장 동혁 (0) | 2025.02.10 |
---|---|
백준-일반 수학1 11005 진법변환2 (0) | 2025.02.07 |
백준-2차원 배열 2563 색종이 (0) | 2025.02.04 |
백준-2차원 배열 10798 세로읽기 (0) | 2025.02.04 |
백준-2차원 배열 2566 최댓값 (0) | 2025.02.03 |