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
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP