Excel 주소(반복 해법)
Excel 셀의 주소는 열 번호를 알파벳으로 표시하는 흥미로운 것을 나타낸다.예를 들어 A는 1열, B는 2열, Z는 26열, AA는 27열, AB는 28열, BA는 53열을 나타낸다.
물론 Excel의 최대 열 번호는 한계가 있기 때문에 전환하는 것은 어렵지 않다.만약 우리가 이런 표현법을 일반화하고 싶다면, 매우 큰 숫자를 매우 긴 자모 서열로 바꿀 수 있습니까?
이 제목은 입력한 숫자에 대응하는 Excel 주소 표시 방식을 출력해야 하는 것입니다.
예를 들어 입력: 26 프로그램은 출력해야 합니다: Z
예를 들어, 입력: 2054는 프로그램이 출력해야 합니다: BZZ 입력
범위 [12147483647] 출력에 대응하는 Excel 주소 표시 방식
어제 모세가 트인 후에 줄곧 우열을 가리던 이 문제도 내가 귀속으로 풀었다.좀 탐색적인 우연이긴 하지만.
이 문제는 구덩이가 하나 있는데 나머지 26은 0요입니다. - 1.
다음은 납득할 수 없는 잘못된 방법이다
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
long a=sc.nextLong();
System.out.println(f(a));
}
static String f(long n) {
if(n<27)
return (char)(n+64)+"";
if(n%26==0)
n--;//
return f(n/26)+f(n%26+1);// +1
}
}
나중에 타협해서 관례적인 사상으로 만들어 냈다
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
long a=sc.nextLong();
char c[]=new char[100];//
int t=0;
while(a!=0) {
if(a%26==0) {// 0 ‘Z',
c[t++]='Z';
a=a/26-1;
}else {
c[t++]=(char)(a%26+64);
a/=26;
}
}
for(int i=t-1;i>=0;i--)//
System.out.print(c[i]);
}
}
마지막으로 어제 자신의 귀속 사상이 향상된 데다가 원래의 잘못된 절차에서 약간의 수정이 뜻밖에도 귀속의 정확한 해법에 성공하였다
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
long n=sc.nextLong();
System.out.println(f(n));
}
static String f(long i) {
if(i<=26)
return ((char)(i+64))+"";
if(i%26==0)
return f(i/26-1)+"Z";// 0
return f(i/26)+f(i%26);
}
}
내가 이해하는 귀착은 한 사람이 답을 찾아야 한다는 것이다. 그러나 이 답을 찾기 위해서는 비슷한 답을 많이 만나야 하지만 마지막에 돌아올 때 다른 사람들은 그가 어떻게 찾든 상관하지 않고 최종 답안만 얻게 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.