Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

求64位能表示的最大斐波那契数

$
0
0

求64位能表示的最大斐波那契数

转载请注明来源:http://blog.csdn.net/letian0805

问题说明

求64位能表示的最大斐波那契数,每10个打印一次,并打印最大以及倒数第二个。

原理

F(0)=0,F(1)=1,F(n)=F(n-1) + F(n-2)。利用64位无符号整型F(n)溢出求出F(n-1)、F(n-2)。

代码

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(void)
{
    uint64_t pre=0;
    uint64_t cur=1;
    uint64_t next=0;
    uint64_t cnt=1;
    while(1)
    {
        next=cur+pre;
        pre=cur;
        cur=next;
        cnt++;
        if(cnt%10==0)
            printf("F%llu=%llu\n", cnt, cur);
	if (cur + pre < cur)
	    break;
    }
    printf("F%llu=%llu  F%llu=%llu\n", cnt-1, pre, cnt, cur);

    system("pause");
    return 0;
}




作者:letian0805 发表于2013-12-25 23:37:21 原文链接
阅读:156 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>