// sf8.cpp : 定义控制台应用程序的入口点。 //http://blog.csdn.net/sunboyiris #include "stdafx.h" #include#include #include #include using namespace std; long fun(int n) { if((n==1)|(n==2)) return 1; else return(fun(n-1)+fun(n-2)); } long FibIter(int n) { //用迭代的方式求解Fibonacci数列 int twoback=1,oneback=1,current; int i; if (n==1||n==2) return 1; else for(i=3;i<=n;i++) { current=twoback+oneback; twoback=oneback; oneback=current; } return current; } double FibFormula(int n) { //用公式求解 double p1,p2; double t1,t2; t1=sqrt(5.0); t1=(1+t1)/2.0; t2=sqrt(5.0); t2=(1-t1)/2.0; p1=(double)pow(t1,n); p2=pow(t2,n); return (p1 - p2) /sqrt((double)(5.0)); } int main() { int N,MAXN=100; long set,set1,set2; srand(time(NULL)); clock_t ibegin, iend; printf("--当前数据量为%d--By vicent(http://blog.csdn.net/sunboyiris)--\n", MAXN); ibegin = clock(); iend = clock(); printf("%d毫秒\n", iend - ibegin); printf("--当前数据量为%d--By vicent(http://blog.csdn.net/sunboyiris)--\n", MAXN); ibegin = clock(); iend = clock(); printf("%d毫秒\n", iend - ibegin); printf("--当前数据量为%d--By vicent(http://blog.csdn.net/sunboyiris)--\n", MAXN); ibegin = clock(); for(int i=2;i<1000;i++) { set=fun(i); } iend = clock(); printf("%d毫秒\n", iend - ibegin); printf("--当前数据量为%d--By vicent(http://blog.csdn.net/sunboyiris)--\n", MAXN); ibegin = clock(); for(int i=2;i<1000;i++) { set1=FibIter(i); } iend = clock(); printf("%d毫秒\n", iend - ibegin); printf("--当前数据量为%d--By vicent(http://blog.csdn.net/sunboyiris)--\n", MAXN); ibegin = clock(); for(int i=2;i<1000;i++) { set2=FibFormula(i);} iend = clock(); printf("%d毫秒\n", iend - ibegin); //set=fun(N); //set1=FibIter(N); //set2=FibFormula(N); //cout<