Swift程序:求解小于等于N的偶数斐波那契数列之和
本教程将讨论如何编写一个Swift程序来求解小于等于数字N的偶数斐波那契数列之和。
一个数列,其中每个数都是其前两个数之和,被称为斐波那契数列。斐波那契数列的起始数字是0和1,所以数列为:
0, 1, 1, 2, 3, 5, 8, 13, 21, ……
能被2整除的数被称为偶数。换句话说,完全能被2整除的数被称为偶数。例如,2, 4, 6, 8等等。
所以我们要找到小于等于N的偶数斐波那契数列之和。
下面是一个演示:
输入
假设我们的输入为:
Enter the number - 10
输出
期望的输出为:
Sum of even Fibonacci terms are 10
这里的输出是10,因为在0到10的斐波那契数列中,偶数是2和8,所以2+8=10。
算法
以下是算法:
步骤1 - 创建一个函数。
步骤2 - 声明四个变量,分别命名为“temp”、“sum”、“n1”、“n2”。其中sum用于存储偶数之和,n1和n2是斐波那契数列的初始两个值。
步骤3 - 运行一个while循环,直到n2 < num。
步骤4 - 使用if语句检查偶数并计算它们的和。
if (n2 % 2 == 0) { sum += n2 }
步骤5 - 将前两个数字相加以找到数列中的第i个数字。
步骤6 - 返回偶数之和。
步骤7 - 调用该函数并传入参数,打印输出。
示例1
下面的程序演示了如何求解小于等于N的偶数斐波那契数列之和。
import Foundation import Glibc // Function to find the sum of even fibonacci terms func SumOfEvenFibonacci(num: Int) -> Int{ var temp = 0 // Store the sum of even numbers var sum = 0 // Initial two values of fibonacci sequence var n1 = 0 var n2 = 1 while(n2 < num){ // Checking for even numbers // By calculating their remainder if the remainder is 0 // then the number is number is even if not // then the number is not even if (n2 % 2 == 0){ sum += n2 } // Adding two previous numbers to find ith // number of the series temp = n1 n1 = n2 n2 += temp } return sum } print("Sum of even fibonacci terms:", SumOfEvenFibonacci(num: 100))
输出
Sum of even fibonacci terms: 44
在上面的代码中,我们创建了一个名为SumOfEvenFibonacci()的函数来求解偶数斐波那契数列之和。在这个函数中,我们通过将前两个数字相加来找到斐波那契数列,然后检查从0到100的所有斐波那契数中的偶数,并使用以下代码计算偶数之和。
while(n2 < num){ if (n2 % 2 == 0){ sum += n2 } temp = n1 n1 = n2 n2 += temp } return sum
上述代码的工作原理是:
temp = 0 sum = 0 n1 = 0 n2 = 1 num = 100 while(1 < 100){ if (1 % 2 == 0) => (1 == 0) = condition false{ sum += n2 } temp = 0 n1 = 1 n2 = 1 + 0 = 1 } while(1 < 100){ if (1 % 2 == 0) => (1 == 0) = condition false{ sum += n2 } temp = 1 n1 = 1 n2 = 1 + 1 = 2 } while(2 < 100){ if (2 % 2 == 0) => (0 == 0) = condition true{ sum = sum + n2 => sum = 0 + 2 = 2 } temp = 1 n1 = 2 n2 = 2 + 1 = 3 } ... so on till num = 100.
现在我们调用该函数,并传入100作为参数,显示结果为44(2+8+34 = 44)。
示例2
下面的程序演示了如何求解小于等于N的偶数斐波那契数列之和。
import Foundation import Glibc // Function to find the sum of even fibonacci terms func SumOfEvenFibonacci(num: Int) -> Int{ var temp = 0 var sum = 0 var n1 = 0 var n2 = 1 while(n2 < num){ // Checking for even numbers if (n2 % 2 == 0){ sum += n2 } // Adding two previous numbers to find ith // number of the series temp = n1 n1 = n2 n2 += temp } return sum } // Taking input from the user print("Please enter the value:") var val = Int(readLine()!)! // Calling function var res = SumOfEvenFibonacci(num: val) print("Sum of even fibonacci terms are:", res)
标准输入
Please enter the value: 10000
输出
Sum of even fibonacci terms are: 3382
在上面的代码中,我们创建了一个名为SumOfEvenFibonacci()的函数来求解偶数斐波那契数列之和。这里我们从用户那里获取输入,并将此输入作为参数传递给SumOfEvenFibonacci()函数。假设用户输入数字10000,则0到10000之间所有偶数的总和为3382。