Goran希望在仙界图书馆借一本书。这本书在仙界图书馆分为了两版发行,分别是a版和b版。这本书非常热门,图书馆的存量也非常大,并且摆放时也有规律:第0号书柜放的是a版,第1号书柜放的是b版,对于第k(k>1)个柜子,书的摆放方式就是重复将它前边两个书柜的排放方式,例如前几个书柜的顺序为:a,b,ab,bab,abbab,bababbab,abbabbababbab,...
当Goran在第N号书柜中选择其中的第k本书时,请你帮他判断这本书究竟是a版还是b版。(书柜从0开始编号,书柜中的书从1开始编号)
数据输入
第1行一个整数T,表示接下来Goran要选T次书。
接下来有T行,每行2个由空格分隔的整数N,K,表示Goran在第N号书柜选择第K本书
1≤T≤100
1≤N≤50
k不超过当前书柜中书的数量,并且k≥1
数据输出
数据输出
输出有T行,每行输出字符a或b,表示对于Goran每次选的书,这本书是a版还是b版
样例
输入样例
4
0 1
1 1
3 2
7 7
输出样例
a
b
a
a
#include <iostream>
#include<algorithm>
using namespace std;
int a[1000];
int f(int n,int num){
if(n==0){
cout<<"a"<<endl;
}
else if(n==1){
cout<<"b"<<endl;
}else {
int temp1=a[n-2];
if(num>temp1){
return f(n-1,num-temp1);
}else{
return f(n-2,num);
}
}
}
int main()
{
int n;
a[0]=1;
a[1]=1;
cin>>n;
int temp1,temp2;
for(int i=2;i<1000;i++){
a[i]=a[i-1]+a[i-2];
}
for(int i=0;i<n;i++){
cin>>temp1>>temp2;
f(temp1,temp2);
}
}
D和E一个是动态规划/贪心算法还有一个是DFS,我还得慢慢看。