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。

更新于:2022年8月19日

961 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告