Java Fibonacci序列生成器:优化及错误修正
Java Fibonacci序列生成器:优化及错误修正
您提供的代码包含一些错误。以下是修正后的版本:javaimport java.util.*;
public class TestFibonacci {
static Scanner input = new Scanner(System.in);
// 这里是你需要实现的函数 public static void parse_line(int n, int d) { int[] f = new int[n + d]; f[0] = 1; f[1] = 1; for (int i = 2; i < n + d; i++) { f[i] = f[i - 1] + f[i - 2]; } for (int m = n; m > n - d; m--) { System.out.println(f[m - 1]); } }
public static void main(String[] args) throws Exception { int line_number = Integer.parseInt(input.nextLine()); for (int i = 0; i < line_number; i++) { String s = input.nextLine(); String t[] = s.split(', '); int n = Integer.parseInt(t[0]); int d = Integer.parseInt(t[1]); TestFibonacci.parse_line(n, d); } }}
这段修正后的程序从输入中读取行数,然后对于每一行,它读取n和d的值。它使用给定的值调用parse_line函数,并按相反的顺序输出Fibonacci序列的d个元素。
代码解释:
parse_line(int n, int d)函数: - 接收两个参数:n表示要打印的Fibonacci序列的起始位置,d表示要打印的元素个数。 - 创建一个长度为n + d的数组f来存储Fibonacci数列。 - 初始化数组的前两个元素f[0]和f[1]为 1。 - 使用循环计算从第三个元素开始的Fibonacci数列,直到n + d个元素。 - 使用另一个循环逆序打印从f[n-1]到f[n-d]的元素。2.main(String[] args)函数: - 从控制台读取输入的行数。 - 循环读取每一行的n和d值。 - 调用parse_line函数来计算并打印 Fibonacci 序列。
优化:
- 使用数组存储Fibonacci数列的值,避免重复计算。- 通过将循环范围设置为
n + d,确保计算了足够多的Fibonacci数。
这个修正后的代码能够正确地生成和打印Fibonacci序列,并且代码更加清晰易懂。
原文地址: https://www.cveoy.top/t/topic/bgPV 著作权归作者所有。请勿转载和采集!