求Fibonacci数列前n项。Fibonacci数列{an}:a1=1,a2=1,an+2=an+1+an(n≥1)。
要求:正整数n由键盘输入
Java实现
import java.util.Scanner;
public class Test160916 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个大于零的整数:");
int n = scanner.nextInt();
System.out.println("斐波那契数列为:");
for (int j = 1; j <= n; j++) {
System.out.println(" a["+j+"] = "+fibonacci(j));
}
scanner.close();
}
private static int fibonacci(int i) {
if (i == 1 || i == 2){
return 1;
}else{
return fibonacci(i - 1) + fibonacci(i - 2);
}
}
}
输出结果:
请输入一个大于零的整数:
9
斐波那契数列为:
a[1] = 1
a[2] = 1
a[3] = 2
a[4] = 3
a[5] = 5
a[6] = 8
a[7] = 13
a[8] = 21
a[9] = 34
C语言实现
#include <stdio.h>
int fibonacci(int n)
{
if(n==1||n==2)
return 1;
return fibonacci(n-1)+fibonacci(n-2);
}
int main()
{
int n;
int i;
printf("请输入一个大于零的整数\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("第%d项=%d\n",i,fibonacci(i));
}
return 0;
}
输出结果:
请输入一个大于零的整数
9
第1项=1
第2项=1
第3项=2
第4项=3
第5项=5
第6项=8
第7项=13
第8项=21
第9项=34