Swift 语言显示斐波那契数列的程序


斐波那契数列是一个数列,其中每个数都是前两个数之和,该数列的起始数字为 0 和 1。因此,一般的斐波那契数列为:

0, 1, 1, 2, 3, 5, 8, 13, 21, ......

公式

以下是斐波那契数列的公式:

Fn = Fn-1 + Fn-2

下面是一个演示:

假设我们输入以下内容:

Number = 5

以下是期望的输出:

Fibonacci Series is- 0, 1, 1, 2, 3

我们可以使用以下任何方法找到斐波那契数列:

  • 迭代法

  • 递归法

迭代法

我们可以使用迭代法创建斐波那契数列。在这种方法中,我们使用循环来查找数列。

算法

算法解释如下:

  • 步骤 1 - 创建一个函数。

  • 步骤 2 - 声明三个变量,值分别为 - n1 = 0,n2 = 1,nR = 0。

  • 步骤 3 - 运行一个从 0 到 <num 的 for 循环,通过添加前面的数字来查找斐波那契数列。

  • 步骤 4 - 声明一个值为 - val = 10 的变量

  • 步骤 5 - 使用一个参数调用函数并显示最终输出。

示例

以下程序演示了如何使用迭代法计算整数中数字的个数。

import Foundation import Glibc func fibonacciSeries(num: Int) -> Int{ // The value of 0th and 1st number of the fibonacci series are 0 and 1 var n1 = 0 var n2 = 1 // To store the result var nR = 0 // Adding two previous numbers to find ith number of the series for _ in 0..<num{ nR = n1 n1 = n2 n2 = nR + n2 } return n1 } var val = 10 print("Following is the Fibonacci series:") // Iterate for every number stating from 0 to val for j in 0...val{ let output = fibonacciSeries(num: j) print(output) }

输出

Following is the Fibonacci series:
0
1
1
2
3
5
8
13
21
34

在上面的代码中,我们创建了一个名为 fibonacciSeries() 的函数,它接受一个参数并返回斐波那契数列。此函数使用 for 循环计算前两个数字的和以找到下一个数字,使用以下代码:

for _ in 0..<num{
   nR = n1 
   n1 = n2
   n2 = nR + n2
}

在函数外部,我们创建了一个名为 val = 10 的变量。现在我们使用 for 循环显示斐波那契数列。此循环从 0 运行到 10,在此循环内,我们使用一个参数调用 fibonacciSeries() 函数,这意味着我们调用 fibonacciSeries() 函数 10 次以查找从 0 到 10 的数列。

递归法

我们可以使用递归法创建斐波那契数列。在这种方法中,我们创建一个递归函数,该函数调用自身以查找从 1 到指定数字的斐波那契数列。

算法

算法解释如下:

  • 步骤 1 - 创建一个函数。

  • 步骤 2 - 使用 if-else 语句检查给定数字是否为 1 或 0,如果给定数字为 1,则返回 1。如果给定数字为 0,则返回 0。

  • 步骤 3 - 通过调用函数本身返回斐波那契数列。

    return fibonacciSeries(num: num - 1) + fibonacciSeries(num: num - 2)

  • 步骤 4 - 声明一个值为 - val = 10 的变量

  • 步骤 5 - 运行一个从 0 到 val 的 for 循环

  • 步骤 6 - 使用一个参数调用函数并显示最终输出。

示例

以下程序演示了如何使用递归法计算整数中数字的个数。

import Foundation import Glibc func fibonacciSeries(num: Int) -> Int{ // Checking number for num 0 and 1 // Or we can say it is the base condition for recursive // function if (num == 0){ return 0 } else if (num == 1){ return 1 } // To find the with number we add the previous two numbers // Here we find the previous two numbers by calling the function itself and return the result. return fibonacciSeries(num: num - 1) + fibonacciSeries(num: num - 2) } var val = 10 print("Following is the Fibonacci series:") // Iterate for every number stating from 0 to val for j in 0...val{ let output = fibonacciSeries(num: j) print(output) }

输出

Following is the Fibonacci series:
0
1
1
2
3
5
8
13
21
34
55

在这里,在上面的代码中,我们创建了一个名为 fibonacciSeries() 的递归函数。它接受一个参数并返回斐波那契数列。现在在函数外部,我们创建了一个名为 val = 10 的变量。为了显示从 0 到 10 的斐波那契数列,我们使用一个 for 循环,此循环从 0 运行到 10,在此循环内,我们使用一个参数调用 fibonacciSeries() 函数,此函数返回从 0 到 10 的斐波那契数列。因此,fibonacciSeries() 函数的工作原理是:

1st call of fibonacciSeries() with 0: fibonacciSeries(0) = return 0
2nd call of fibonacciSeries() with 1: fibonacciSeries(1) = return 1
3rd call of fibonacciSeries() with 3: fibonacciSeries(2) =
return fibonacciSeries(num: 2 - 1) + fibonacciSeries(num: 2 -  2) = fibonacciSeries(num:1) + fibonacciSeries(num: 0) = 1 + 0 = 1
return 1
4th call of fibonacciSeries() with 4: fibonacciSeries(4) =
return fibonacciSeries(num: 4 - 1) + fibonacciSeries(num: 4 -  2) = fibonacciSeries(num:3) + fibonacciSeries(num: 2) = 1 + 1 = 2
return 2
...
10th call of fibonacciSeries() with 10: fibonacciSeries(10) =
return fibonacciSeries(num: 10 - 1) + fibonacciSeries(num: 10 -  2) = fibonacciSeries(num:9) + fibonacciSeries(num: 8) = 21 + 34 = 55
return 55

更新于:2022年8月5日

6000+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.