Fibodigits-计算斐波那契数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fibodigits-计算斐波那契数字相关的知识,希望对你有一定的参考价值。

我需要找到斐波纳契数的位数,直到1000位。

例如:1有1位数字,10有2位数字,100有3位数字...

斐波那契数列以此方式开始:0,1,2,3,5,8,13 ...

我必须插入1000并得到4782。

我得到4781插入524,请参见下文。我想插入1000并得到4782。有什么可能的方法来获取堆栈的长度?在python中,我可以使用len函数,在C中,它将不起作用:)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int s) {
    int i = 1;
    int k = 1;
    int list[1000] = { 0, 1 };
    int fibo = 0;
    int s = -1;
    int divide = 0;
    while (i < 1500) {
        i++;
        fibo = list[i - 1] + list[i - 2];
        if (i == 1000) {
            break;
        } else {
            list[i] = fibo;
            //printf("%d
", list[i]);
        }
    }

    while (s < 524) {
        s++;
        divide = 0;
        while (list[s] != 0) {
            divide = list[s] / 10;
            list[s] = divide;
            k++;
            if(divide == 0) {
                break;
            }
        } 
    }
    printf("%d
", k);
}
答案

这个简单的问题在C语言中比在Python中解决要困难得多:取消链接Python,C语言在默认情况下没有多精度整数算术,因此您必须自己实现它,至少要加法,最好是在基数10中实现。 >

这是一个快速而幼稚的实现:

以上是关于Fibodigits-计算斐波那契数字的主要内容,如果未能解决你的问题,请参考以下文章

递归优化的斐波那契数列

算法动态规划 - 斐波那契数

用递归法计算斐波那契数列的第n项

509-斐波那契数

509. 斐波那契数

编写一递归函数求斐波那契数列的前40项