定义
交流功率斐波那契数列形成如下。
从空序列开始,并将n设置为1。
用重复计算第n 个非负斐波那契数f n。0是第一个,1是第二个,第三个,2是第四个。所有其他值都是通过将序列中的前两个数字相加得出的,因此3 = 1 + 2是第五个,5 = 2 + 3是第六个,依此类推。
如果n为奇数,则更改f n的符号。
将f n的2 n-1个副本附加到序列中。
递增n并返回到步骤2。
这些是APF序列的前一百个术语。
0 1 1 -1 -1 -1 -1 2 2 2 2 2 2 2 2 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
-3 -3 -3 -3 -3 -3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5 5 5 5 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8
-8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8
任务
编写一个完整的程序或函数,将正整数n作为输入并打印或返回APF序列的第n 个项。
如果您更喜欢从0开始的索引,则可以选择使用非负整数n并在索引n处打印或返回APF编号。
这是代码高尔夫球;以字节为单位的最短代码可能会获胜!
测试用例(基于1)
1 -> 0
2 -> 1
3 -> 1
4 -> -1
7 -> -1
8 -> 2
100 -> -8
250 -> 13
500 -> -21
1000 -> 34
11111 -> 233
22222 -> -377
33333 -> 610
测试用例(从0开始)
0 -> 0
1 -> 1
2 -> 1
3 -> -1
6 -> -1
7 -> 2
99 -> -8
249 -> 13
499 -> -21
999 -> 34
11110 -> 233
22221 -> -377
33332 -> 610