진법 변환 - 심화
본문 바로가기
알고리즘 최종 (단계별)/1.수학

진법 변환 - 심화

by KyeongMin 2023. 6. 28.
728x90
반응형

2089_-2진수

  • 문제 링크

https://www.acmicpc.net/problem/2089

  • 문제 풀이
    • 작성중
  • 소스코드
#include<iostream>
using namespace std;

void go(int n) {
	if (n == 0)return;
	if (n % 2 == 0) {
		go(-(n / 2));
		cout << "0";
	}
	else {
		if (n > 0) {
			go(-(n / 2));
		}
		else {
			go((-n + 1) / 2);
		}
		cout << "1";
	}
}

int main() {
	int n;
	cin >> n;
	if (n == 0) cout << '0' << '\\n';
	else {
		go(n);
	}
	return 0;
}

11576_Base Conversion

  • 문제링크

https://www.acmicpc.net/problem/11576

  • 문제 풀이
    • 진법을 적용하기전 숫자로 돌아가면됨
    • 그것에 대한 소스코드
      • 즉, 10진법으로 다시 변경
      • 그리고 다시 진법을 구분하여 출력하면됨
    • for(int i=0;i<N;i++){ int x; num == num * A +x; }
  • 소스코드
#include<stdio.h>
#include<iostream>
using namespace std;

void conversion(int A, int B)
{
	if (A == 0)return;
	conversion(A / B, B);
	cout << A % B<<" ";
}
int main(void) {
	int A, B;
	int N;
	cin >> A >> B;
	cin >> N;
	int num = 0;
	for (int i = 0; i < N; i++) {
		int x;

		cin >> x;
		num = num * A + x;
	}
	conversion(num, B);
	return 0;
}
728x90
반응형

댓글