L1-050 N 끝에서 두 번째 문자열 (15 분)
전체 시퀀스를 증가 소문자가 이루어지는 문자열 연산 주어 시퀀스 내의 각 스트링은 하나의 단위에있어서, L (A)로부터 시작하여, L에 고정된다. 예를 들어, L (3), 시퀀스 {되면 AAA, AAB, AAC, ... AAZ, ABA, ABB, ... ABZ, ..., ZZZ}. 끝에서 두 번째 (27) 문자열의 순서는 zyz입니다. 주어진 L를 들어,이 문제는 해당 N 끝에서 두 번째 시퀀스 문자열을 제공 할 수 있어야합니다.
입력 형식 :
주어진 입력 행 개의 양의 정수의 L (2 ≤ L ≤ 6)과 N (5 ≤10)에서.
출력 형식 :
행의 끝에서 두 번째 N 문자열의 출력 순서에 대응. 주제는이 문자열이 존재하는지 확인합니다.
샘플 입력 :
3 7417
샘플 출력 :
pat
사고 : 16 진수 (26)는 'A'등 문자에 숫자를 0 대응을 적용한다. 자리의 수 '는'채우기에 충분하지 않은 경우입니다 구덩이는있다
#include<iostream>
#include<stack>
using namespace std;
int main(void){
int L,N;
scanf("%d%d",&L,&N);
int t =1;
for( int i=1;i<=L;i++){
t*=26;
}
N = t-N;
stack<char> st;
while( N ){
t = N%26;
st.push('a'+t );
N/=26;
}
for( int i=1;i<=L-st.size();i++)
cout<<'a';
while( !st.empty() ){
cout<<st.top();
st.pop();
}
cout<<endl;
return 0;
}