블루 브리지 컵 Excel 주소 [진수 변환]

시간 제한: 1.0s 메모리 제한: 256.0M
문제 설명
Excel 셀의 주소는 열 번호를 알파벳으로 표시하는 흥미로운 것을 나타낸다.예를 들어 A는 1열, B는 2열, Z는 26열, AA는 27열, AB는 28열, BA는 53열을 나타낸다.물론 Excel의 최대 열 번호는 한계가 있기 때문에 전환하는 것은 어렵지 않다.만약 우리가 이런 표현법을 일반화하고 싶다면, 매우 큰 숫자를 매우 긴 자모 서열로 바꿀 수 있습니까?
이 제목은 입력한 숫자에 대응하는 Excel 주소 표시 방식을 출력해야 한다는 것이다.
샘플 입력
26
샘플 출력
Z
샘플 입력
2054
샘플 출력
BZZ
데이터 규모 및 규약
우리는 입력한 정수 범위[12147483647]를 약정한다
문제 풀이 사고방식
이 문제는 사실 10진법에서 26진법으로 바뀌었으니 0이 없으면 26이 된다는 것을 주의해야 한다.나머지 숫자가 0일 때 26 (알파벳 Z) 을 출력하고 1 을 제외하면 됩니다.
AC 코드
#include 
using namespace std;
int a[10001];
int main()
{ 
	
	long long num;
	cin >> num;	
	char o[27];
	for(int i=1;i<=26;i++)
		o[i] = 'A'+i-1;
	
	int k=0;
	while( num!=0) {
		if(num%26 == 0) {
			a[k++] = 26;
			num /= 26;
			num --;
		}
		else {
			a[k++] = num%26;
			num /= 26;
		}	
	}
	k--;
	for(int i=k;i>=0;i--)
		printf("%c",o[a[i]]);
	
} 

좋은 웹페이지 즐겨찾기