JavaExcel 주소

5596 단어 Java 알고리즘
[제목] Excel 셀의 주소는 매우 흥미롭다는 것을 나타낸다. 이것은 알파벳을 사용하여 열 번호를 표시한다.예를 들어 A는 1열, B는 2열, Z는 26열, AA는 27열, AB는 28열, BA는 53열을 나타낸다. 물론 엑셀의 최대 열 번호는 한계가 있기 때문에 전환하는 것은 어렵지 않다.만약 우리가 이런 표현법을 일반화하고 싶다면, 매우 큰 숫자를 매우 긴 자모 서열로 바꿀 수 있습니까?이 제목은 입력한 숫자에 대응하는 Excel 주소 표시 방식을 출력해야 하는 것입니다.예를 들어 입력: 26 프로그램은 출력해야 합니다: Z 그리고 입력: 2054 프로그램은 출력해야 합니다: BZZ
[분석] 입력한 숫자가 나머지 26을 0으로 하는지 판단하고 하나의if...else를 입력하면 됩니다. n%26==0을 입력하면 출력된 알파벳의 1위는 Z입니다. 그리고 n/26을 빼면 하나를 빼야 합니까? 26을 빼면 Z에 머물러 있기 때문에 하나를 빼면 A가 시작됩니다. 만약에 n%26! =0, 그것은else입니다. 그러면 n%26을 현재 자모로 하고 나머지는 소문자로 합니다. 따라서 +64를 대문자로 변환해야 합니다. 자세한 내용은 코드 프레젠테이션을 보십시오!
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        //  
        char[] e = new char[100];
        //  
        int index = 0;
        while (n != 0) {
            if (n % 26 == 0) {
                e[index++] = 90;
                n /= 26;
                n--;
            } else {
                e[index++] = (char) (n % 26 + 64);
                n /= 26;
            }
        }
        for (int i = index - 1; i >= 0; i--) {
            System.out.print(e[i]);
        }
    }
}

좋은 웹페이지 즐겨찾기