小Y上课摸鱼,在纸上第一行写了一个A,然后在第二行的时候把上一行的A替换成AB,于是他第二行写下一个AB,然后在第三行的时候把上一行的每个A替换成AB,把上一行的每个B替换成了BA,于是写下了ABBA,如此往复。小Y最后打算写N行,但是写着写着小Y突然发现纸不够用了,于是乎小Y为了节省纸张,决定每次只写下第N行的第K个字符。但是小Y因为是在上课摸鱼,所以他把这个艰巨的任务交给了你,请你编写一个程序,帮助小Y找到他所写下的序列的第N行的第K个字符。
Hint:
第一行: A
第二行: AB
第三行: ABBA
第四行: ABBABAAB
输入
两个数字N、K表示需要第N行的第K个字符
1<=N<=30
1<=K<=2^(N-1)
输出
一个字符表示答案
输入样例
1 1
2 1
2 2
4 5
输出样例
A
A
B
B
#include<bits/stdc++.h>
using namespace std;
// 查询第 n 层 第 k 个
// A 为 1 B 为 0
int find(int n, int k)
{
if(n==1)
return 1