尝试用数组实现斐波那契数列,这个怎么解决改善

img


数组长度是用户输入,那定义数组的时候咋初始化?在函数内定义数组也是同样的问题

n 没初始化,你要放到输入n 的下面,再对 指针 a 进行内存分配。

img

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7776759
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:定义两个整数,计算这两个整数加减乘除取余运算的结果,并把结果打印到控制台
  • 除此之外, 这篇博客: 最通俗易懂的链表讲解中的 了解了链表的基础,那么现在我们就来看看链表的数据结构: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • //数据结构
    typedef struct monster{
          int id;      //编号
          char *name;  //名称
            
          //指向下一结点的指针
          struct monster *pNext;
    }Monster;
    

    光看结构是看不出什么来的,所以还是要大家来实战一下来加强印象:

    //示例
    typedef struct Monster{
        int id;
        char *name;
        struct Monter *next;   //指向下个结点的指针
    }Monster;
    
    void test()
    {
        Monster monster1 = {1, "乔布斯"};
       Monster monster2 = {2, "比尔·盖茨"};
       Monster monster3 = {3, "巴菲特"};
       
       //monster1 就是头指针
       monster1.next = &monster2;
       monster2.next = &monster3;
       monster3.next = NULL;
    }
    

  • 您还可以看一下 郑逊敏老师的抖音快手短视频自媒体制作引流运营兼职创业赚钱盈利实战教程课程中的 巧妙借势热点,实现快速涨粉小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决该问题的步骤如下:

    1. 首先,需要获取用户输入的数组长度。可以使用input函数来接收用户的输入,并将其转换为整数类型。
    length = int(input("请输入数组长度:"))
    
    1. 然后,可以使用用户输入的数组长度来创建一个空数组。可以使用列表推导式或者循环来实现。
    fib_array = [0] * length
    
    1. 接下来,可以编写一个函数来计算斐波那契数列,并返回一个包含斐波那契数的数组。
    def fibonacci(length):
        fib_array = [0] * length
        fib_array[0] = 0
        fib_array[1] = 1
        for i in range(2, length):
            fib_array[i] = fib_array[i-1] + fib_array[i-2]
        return fib_array
    
    1. 最后,可以调用上述函数并打印结果。
    result = fibonacci(length)
    print(result)
    

    完整示例代码如下:

    def fibonacci(length):
        fib_array = [0] * length
        fib_array[0] = 0
        fib_array[1] = 1
        for i in range(2, length):
            fib_array[i] = fib_array[i-1] + fib_array[i-2]
        return fib_array
    
    length = int(input("请输入数组长度:"))
    result = fibonacci(length)
    print(result)
    

    使用这个方法,你就可以根据用户输入的数组长度来初始化数组,并计算斐波那契数列了。