斐波那契数列计算:Scala实现
斐波那契数列计算: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)
}
}
代码解释
- 读取输入: 使用
readLine().toInt读取输入的测试数据组数和每个测试数据的数字。 - 循环遍历: 使用
for循环遍历所有测试数据。 - 递归函数:
fibonacci(a)函数使用递归方法计算斐波那契数列的第'a'个数字。
- 当'a'为'1'或'2'时,直接返回'1'。
- 否则,递归调用
fibonacci(a-1)和fibonacci(a-2),并返回它们的和。
- 输出结果: 使用
println输出计算结果。
总结
本文展示了使用Scala语言实现斐波那契数列计算的代码示例。该代码简洁易懂,通过递归方法实现了斐波那契数列的计算。你可以根据需要修改代码,例如添加错误处理、优化性能等。
原文地址: https://www.cveoy.top/t/topic/n2dt 著作权归作者所有。请勿转载和采集!