/************************************************************************/ /* 生成斐波那契数组 递归程序的设计: 1+1.一个截止条件+一个重复调用本身条件 非递归程序设计: 就是为了模拟递归调用的过程 */ /************************************************************************/ #include <cstdio> int Fibonacci_Recur(int n) { if(n==0 || n==1) return n; else return Fibonacci_Recur(n-1)+Fibonacci_Recur(n-2); } int Fibonacci_NoRecur(int n) { if(n==0||n==1) return n; else { int tmp_pre2=0,tmp_pre1=1,tmp_cur; for(int i=2;i<=n;i++) { tmp_cur = tmp_pre1+tmp_pre2; tmp_pre2 = tmp_pre1; tmp_pre1 = tmp_cur; } return tmp_cur; } } int main() { puts("20个数的斐波那契数列为:"); for(int i=0;i<20;i++) printf("%d ",Fibonacci_NoRecur(i)); printf("\n"); }
斐波那契数列的递归和非递归实现,布布扣,bubuko.com
原文:http://blog.csdn.net/lynnbest/article/details/22217053