C语言实现斐波那契数列

简介: C语言实现斐波那契数列

斐波那契数列是一个著名的递归序列,通常定义为:从第三项开始,每一项都等于前两项之和。在C语言中,我们可以使用循环结构来计算指定位置的斐波那契数`:

1. 变量实现

#include <stdio.h>

int main() {
    // 定义要计算的斐波那契数列项的位置
    int targetPosition = 20;

    // 初始化斐波那契数列的前两项
    int previousFibonacci = 0;
    int currentFibonacci = 1;
    int nextFibonacci; // 存储下一项的临时变量

    // 循环直到达到目标位置(包含目标位置)
    for (int i = 2; i <= targetPosition; ++i) {
        // 计算下一项
        nextFibonacci = previousFibonacci + currentFibonacci;

        // 更新前两项的值
        previousFibonacci = currentFibonacci;
        currentFibonacci = nextFibonacci;
    }

    // 输出第targetPosition项的斐波那契数
    printf("%d\n", currentFibonacci);

    return 0; // 修改返回值为0表示程序正常结束
}

我们将目标位置变量命名为 targetPosition,并初始化斐波那契数列的前两项为0和1。通过 nextFibonacci 变量存储即将更新的当前项。

2. 数组实现

#include <stdio.h>

int main() {
    int sequence_length = 10;
    int fibonacci_sequence[sequence_length];
    fibonacci_sequence[0] = fibonacci_sequence[1] = 1;

    for (int current_index = 2; current_index < sequence_length; ++current_index) {
        fibonacci_sequence[current_index] = fibonacci_sequence[current_index - 1] + fibonacci_sequence[current_index - 2];
    }

    printf("%d", fibonacci_sequence[sequence_length - 1]);

    // 程序正常结束,返回0
    return 0;
}

3. 递归实现

#include <stdio.h>

int fib(int n){
    if(n==1||n==2)return 1;
    return fib(n-1)+ fib(n-2);
}

int main() {
    printf("%d", fib(10));
    // 程序正常结束,返回0
    return 0;
}


目录
相关文章
|
2月前
|
算法 C语言
斐波那契数列C语言版划重点,小白必看
斐波那契数列C语言版划重点,小白必看
|
2月前
|
存储 C语言
C语言输出斐波那契数列
C语言输出斐波那契数列
24 0
|
9月前
|
C语言
【C语言实现求斐波那契数列的第n位】
【C语言实现求斐波那契数列的第n位】
53 0
|
1月前
|
机器学习/深度学习 C语言
斐波那契数列(用c语言探索黄金分割之美)
斐波那契数列(用c语言探索黄金分割之美)
18 0
|
2月前
|
算法 搜索推荐 程序员
C语言第三十一练——递归求解n位斐波那契数列
C语言第三十一练——递归求解n位斐波那契数列
33 0
|
7月前
|
C语言
C语言二十三弹---求第N项斐波那契数列的值
C语言二十三弹---求第N项斐波那契数列的值
|
9月前
|
C语言
C 语言实例 - 斐波那契数列
C 语言实例 - 斐波那契数列。
51 0
|
C语言
斐波那契数列【C语言实现】
斐波那契数列【C语言实现】
227 4
|
C语言
C语言题:用数组来求斐波那契数列问题前20项
用数组来求fibonacci数列问题:
137 0
|
算法 C语言
C语言典型例题四——斐波那契数列
Fibonacci(斐波那契)数列 求斐波那契数列的前40个数。这个数列有个特点:第1,2两个数为1,1。从第三个数开始,该数是其前面两个数之合。即该数列为1,1,2,3,5,8,13……。
166 0