经典兔子个数计算算法分析 分析对比
//
// Created by root on 18-10-18.
//
#include <stdio.h>
#include <time.h>
int main(){
double start, finish;
start = clock();//取开始时间
printf("第%d个月,总共有%d只兔子!\n", 40, sumNum(40));
finish = clock();//取结束时间
printf( "%f 1 seconds\n",(finish - start) / CLOCKS_PER_SEC);//以秒为单位显示之
start = clock();//取开始时间
printf("第%d个月,总共有%ld只兔子!\n", 40, sumNum2(40));
finish = clock();//取结束时间
printf( "%f 2 seconds\n",(finish - start) / CLOCKS_PER_SEC);//以秒为单位显示之
return 0;
}
//a
int sumNum(int m){
if(m == 1 || m == 2){
return 1;
}else if(m > 2){
return sumNum(m-2) + sumNum(m-1);
}
}
//b
int sumNum2(int size){
int arr [size];
int i;
arr[0] = 1;
arr[1] = 1;
for (i = 2; i < size ; ++i) {
arr[i] = arr[i-2] + arr[i-1];
}
return arr[size-1];
}