我的Fabonacci数列

本文探讨了斐波那契数列的不同实现方法,包括使用汇编语言和C++循环方式来高效计算数列中的特定项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在社区看到一个帖子《[送分]老的不能再老的题目了,斐波那契序列》 ,开始以为直接接分就OK了,结果进去一看:“如果你的方法比我想的还简单(或者和我一样),得所有分……”

果然是天下没有免费的午餐,但想想还是写写看看。

一个定势思维出来了,我大不了用汇编行不?

          mov  ax ,  n     ;  ax for n
          mov  bx ,   1      ;  bx for fab(n+1)
          mov  cx ,   1      ;  cx for fab(n-1)
          mov  dx ,  bx    ;  dx for fab(n)
loop:  add   bx ,  cx
          mov  cx
,  dx
          dec  ax
          jns    loop

再一想,我不用递归,用循环吧!最后出来下面的代码:

#include  < iostream >
using   namespace  std;

const   int  N  =   10 ;
int  main( int  argc,  char *  argv[])
{
    
long lFabOdd(1), lFabEven(1);
    
int i(2);

    
while(i<N)
    
{
        lFabOdd  
+= lFabEven;
        lFabEven 
+= lFabOdd;
        i 
+= 2;
    }


    
if(i>N)
    
{
        cout 
<< lFabOdd;
    }


    
else
    
{
        cout 
<< lFabEven;
    }


    
return 0;
}

不知道贴主的答案是什么,我觉得我也只能写到这一步了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值