Blu-Bridge 컵 -- Excel 주소

1293 단어 블루 브리지 컵
문제 설명
Excel 셀의 주소는 열 번호를 알파벳으로 표시하는 흥미로운 것을 나타낸다.
예를 들면,
A는 첫 번째 열을 나타냅니다.
B는 두 번째 열을 나타냅니다.
Z는 26열을 나타냅니다.
AA는 27열을 나타냅니다.
AB는 28열을 나타내고,
BA는 53열을 나타내고,
  ....
물론 Excel의 최대 열 번호는 한계가 있기 때문에 전환하는 것은 어렵지 않다.
만약 우리가 이런 표현법을 일반화하고 싶다면, 매우 큰 숫자를 매우 긴 자모 서열로 바꿀 수 있습니까?
이 제목은 입력한 숫자에 대응하는 Excel 주소 표시 방식을 출력해야 한다는 것이다.
샘플 입력
26
샘플 출력
Z
샘플 입력
2054
샘플 출력
BZZ   
진법 변환 문제: 심제 출시 규칙: A:1B:2...Z:26 AA:27 AB:28 AC:29
AB=1*26^1+2*26^0=28
AC=1*26^1+3*26^0=29
……
BZZ=2*26^2+26*26^1+26*26^0=2054(26의 진법 변환으로 볼 수 있음)
현재 이미 알고 있는 숫자는 자모를 구하는데 평상시에는 26으로 나누어야 하지만 나머지가 0일 때는 26으로 해야 한다. 그러면 나머지를 빼고 26으로 나누어 26으로 나누어야 한다.
예를 들어 Z:26 26%26=0->26(Z)상은 n=(26-26)/26->0으로 바뀝니다.
AB:28  28%26=2-->B  n=(28-2)/26=1   
package Excel ;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long n;
		Scanner in=new Scanner(System.in);
		n=in.nextLong();
		long ch=0;
		char a[]=new char[1000];
		int i=0;
		while(n!=0){
			ch=n%26;
			if(ch==0)  ch=26;
			n=(n-ch)/26;
			a[i]=(char) ((char) ch+'A'-1);
			i++;
		}
		for(int j=i-1;j>=0;j--){
			System.out.print(a[j]);
		}
	}

}

좋은 웹페이지 즐겨찾기