题目 1131: [C语言训练]斐波纳契数列 题解

tech2022-09-16  93

题目描述 斐波纳契数列 1,1,2,3,5,8,13,21,34,55,89……这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。

输入 一个整数N(N不能大于40)

输出 由N个“斐波纳契数”组成的“斐波纳契数列”。

样例输入 6 样例输出 1 1 2 3 5 8

题目分析:

这题只要知道斐波那契数列的定义就很容易写出来;

斐波那契数列的定义:这个数列从第3项开始,每一项都等于前两项之和;

有两种方式,递归和循环; 递归比较简洁,而循环效率比递归效率要高,所以我用循环求解;

代码演示:

public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] arr=new int[n];//数据存入数组方便遍历 for (int i = 0; i < arr.length; i++) { if(i==0) { //长度为1的情况 arr[0]=1; } if(i==1) { //长度为2的情况 arr[1]=1; } if(i>=2) { arr[i]=arr[i-1]+arr[i-2];//推导公式,由前两个数的的和推出出下一个数的值; } } //遍历输出 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } }

程序结果:

最新回复(0)