传送门
题目大意:求斐波那契数列f(n),如果位数的个数大于8那么要输出前4四位和后四位,没有到8位的时候直接输出。
解题思路:当n=40时f(n)的结果位数就超过8位了,所以n<40可以直接求解;
当n>=40时,后四位可以用矩阵快速幂求解,对1000取模即可。
前四位的求法参考了别人的博客,很详细:
http://blog.sina.com.cn/s/blog_9bf748f301019q3t.html
/* ***********************************************
┆ ┏┓ ┏┓ ┆
┆┏┛┻━━━┛┻┓ ┆
┆┃ ┃ ┆
┆┃ ━ ┃ ┆
┆┃ ┳┛ ┗┳ ┃ ┆
┆┃ ┃ ┆
┆┃ ┻ ┃ ┆
┆┗━┓ 马 ┏━┛ ┆
┆ ┃ 勒 ┃ ┆
┆ ┃ 戈 ┗━━━┓ ┆
┆ ┃ 壁 ┣┓┆
┆ ┃ 的草泥马 ┏┛┆
┆ ┗┓┓┏━┳┓┏┛ ┆
┆ ┃┫┫ ┃┫┫ ┆
┆ ┗┻┛ ┗┻┛ ┆
************************************************ */
//#pragma comment(linker, "/STACK:102400000,102400000")
#include
#include
#include
#include
#include
#include
#include
#include
#include