如何在32位系统上利用汇编语言怎么输出结果实现输出n>100的斐波那契数列值



普通的数组肯定存不下了这个時候就要用到矩阵快速幂了。


 while(n)//将快速幂换成矩阵快速幂
 
}
C语言编程输出斐波那契数列第n项嘚值多组,第一行输入一个n(n大于等于0小于等于10的10次方)输出一对应项的值(是过输出的值太大则输出mod66666).样例输入589样例C语言编程输出斐波... C语言編程输出斐波那契数列第n项的值。多组第一行输入一个n(n大于等于0小于等于10的10次方),输出一对应项的值(是过输出的值太大则输出mod66666). 样例输入5 8 9
樣例 C语言编程输出斐波那契数列第n项的值多组,第一行输入一个n(n大于等于0小于等于10的10次方)输出一对应项的值(是过输出的值太大则输出mod66666). 樣例输入5 8 9

对于2113n不大,可以5261直接用递推来解决

 

但是这道题目n比较大是165310^10
直接这么跑的话,时间有点接受不了
那么就要高一点手段了。
可以寫出一下两个等式:



这么表示的意义在于可以写成一个转移矩阵:



现在我们只需要能快速地处理中间那个矩阵的n-2次方
就可以快速求出数列的第n项了
假如要求a的b次方(这里写成a^b):

11表示成二进制为1011



所以,只需将a不断平方在二进制那一位是1的乘到结果里就可以了
这段的C代码昰这样的(为了不溢出,中间mod66666)
 

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}

我要回帖

更多关于 汇编语言怎么输出结果 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信