斐波那契数列计算:Scala实现

斐波那契数列是指这样的数列:数列的第一个和第二个数都为'1',接下来每个数都等于前面'2'个数之和。

给出一个正整数'a',要求斐波那契数列中第'a'个数是多少。

输入格式

第'1'行是测试数据的组数'n',后面跟着'n'行输入。每组测试数据占'1'行,包括一个正整数'a'('1'≤'a'≤'30')。

输出格式

输出有'n'行,每行输出对应一个输入。输出应是一个正整数,为斐波那契数列中第'a'个数的大小。

Scala实现内容

import scala.io.StdIn.readLine

object Main extends App {
  val n = readLine().toInt
  for (_ <- 1 to n) {
    val a = readLine().toInt
    println(fibonacci(a))
  }

  def fibonacci(a: Int): Int = {
    if (a == 1 || a == 2) 1
    else fibonacci(a-1) + fibonacci(a-2)
  }
}

代码解释

  1. 读取输入: 使用readLine().toInt读取输入的测试数据组数和每个测试数据的数字。
  2. 循环遍历: 使用for循环遍历所有测试数据。
  3. 递归函数: fibonacci(a)函数使用递归方法计算斐波那契数列的第'a'个数字。
  • 当'a'为'1'或'2'时,直接返回'1'。
  • 否则,递归调用fibonacci(a-1)fibonacci(a-2),并返回它们的和。
  1. 输出结果: 使用println输出计算结果。

总结

本文展示了使用Scala语言实现斐波那契数列计算的代码示例。该代码简洁易懂,通过递归方法实现了斐波那契数列的计算。你可以根据需要修改代码,例如添加错误处理、优化性能等。

斐波那契数列计算:Scala实现

原文地址: https://www.cveoy.top/t/topic/n2dt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录