Fibonacci序列: 1 1 2 3 5 8 13 (一个数等于前两个数之和)
1. Fibonacci序列_递归(简单,用时长)
#include<stdio.h> enum {N=30};//Fibonacci序列最大个数 int f(int x) { return x>2 ? f(x-1)+f(x-2) : 1; } int main() { int i; for(i=1;i<=N;i++) printf("%d\t",f(i)); return 0; }
2.Fibonacci序列_递归(快速,用时非常短)
#include<stdio.h> enum {N=30};//Fibonacci序列最大个数 int ff(int a,int b,int n) { return n<=1 ? b : ff(a+b,a,n-1); } int f(int n) { return ff(1,1,n); } int main() { int i=1; for(i=1; i<=N; i++) printf("%d\t",f(i)); return 0; }
3.Fibonacci序列(数组方法)
#include<stdio.h> enum {N=30}; //Fibonacci序列最大个数 int main() { int i,a[N]={1,1}; for(i=2;i<N;i++) a[i] = a[i-1] + a[i-2]; for(i=0;i<N;i++) printf("%d\t",a[i]); return 0; }
4.Fibonacci序列(循环交换)
#include<stdio.h> enum {N=30}; //Fibonacci序列最大个数 int main() { int i,t=1,m=0,j=1; for(i=1;i<=N;i++) { printf("%d\t",j); j=t+m; m=t; t=j; } return 0; }
本文出自 “完美式流年” 博客,请务必保留此出处http://1666053609.blog.51cto.com/9688895/1604675
原文地址:http://1666053609.blog.51cto.com/9688895/1604675