KI的斐波那契
Description
KI十分喜欢美丽而优雅的斐波那契数列,最近他新认识了一种斐波那契字符串,定义如下
f (0) = b, f (1) = a,
f (2) = f (1) + f (0) = ab,
f (3) = f (2) + f (1) = aba,
f (4) = f (3) + f (2) = abaab,
......
KI想知道 f (n) 中的第 m 位是什么,你可以帮他解决这个问题吗?
Input
Output
对于每个测试组,输出’a’或者’b’
Sample Input
54 15 310 2222 23366 2333333333333
Sample Output
aaaba
#include<cstdio>
#include<cstring>
#include<iostream>
typedef
long
long
ll;
const
int
N=100;
ll a[100];
int
main(){
a[0]=1,a[1]=1;
for
(
int
i=2;i<=90;i++) a[i]=a[i-1]+a[i-2];
int
t;
scanf
(
"%d"
,&t);
while
(t--)
{
ll n,m;
scanf
(
"%lld%lld"
,&n,&m);
while
(1)
{
if
(n==0){
printf
(
"b\n"
);
break
;}
if
(n==1){
printf
(
"a\n"
);
break
;}
if
(m<=a[n-1]){n--;}
else
{m-=a[n-1];n-=2;}
}
}
return
0;
}