任务描述
本关任务:用循环和递归算法求斐波那契额数列的前 10 项。
编程要求
请在右侧编辑器Begin-End
处补充代码,完成本关任务。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:10
预期输出:
递归算法求的前10项为: 1 1 2 3 5 8 13 21 34 55
循环算法求的前10项为: 1 1 2 3 5 8 13 21 34 55
#include <stdio.h> int fibo_recur(int n) { /********** Begin **********/ if(n==1||n==2) return 1; return fibo_recur(n-1)+fibo_recur(n-2); /********** End **********/ } int a[2]={1,1}; int fibo_loop(int n) { /********** Begin **********/ int t; if(n>2){ for(int i=1;i<=n-2;i++){ t=a[1]; a[1]=a[1]+a[0]; a[0]=t; return a[1]; } } else return 1; /********** End **********/ } void main() { int n,y,i; scanf("%d",&n); printf("递归算法求的前%d项为:",n); for(i=1; i<=n; i++) { y=fibo_recur(i); printf("%3d",y); } printf("\n循环算法求的前%d项为:",n); for(i=1; i<=n; i++) { y=fibo_loop(i); printf("%3d",y); } }