#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int fibo_saiki(int a){
int r;
if(a==0 || a==1){
return 1;
}
else{
r = fibo_saiki(a-1) + fibo_saiki(a-2);
}
return r;
}
int fibo_not_saiki(int n){
int a2=2,a1=1,a0=1,i;
if(n==0 || n==1){
return 1;
}
else{
for(i=2;i<=n;i++){
a2 = a1 + a0;
a0 = a1;
a1 = a2;
}
}
return a1;
}
int main(void) {
int i=0,ans;
clock_t ti[2];
for(i;i<=30;i++){
ans = fibo_saiki(i);
printf("fibo_saiki(%d)の時間=%ld\n",i
,ti
[1]-ti
[0]); ans = fibo_not_saiki(i);
printf("fibo_not_saiki(%d)の時間=%ld\n",i
,ti
[1]-ti
[0]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBmaWJvX3NhaWtpKGludCBhKXsKCWludCByOwoJaWYoYT09MCB8fCBhPT0xKXsKCQlyZXR1cm4gMTsKCX0KCWVsc2V7CgkJciA9IGZpYm9fc2Fpa2koYS0xKSArIGZpYm9fc2Fpa2koYS0yKTsKCX0KCXJldHVybiByOwp9CgoKaW50IGZpYm9fbm90X3NhaWtpKGludCBuKXsKCWludCBhMj0yLGExPTEsYTA9MSxpOwoJaWYobj09MCB8fCBuPT0xKXsKCQlyZXR1cm4gMTsKCX0KCWVsc2V7CgkJZm9yKGk9MjtpPD1uO2krKyl7CgkJCWEyID0gYTEgKyBhMDsKCQkJYTAgPSBhMTsKCQkJYTEgPSBhMjsKCQl9Cgl9CglyZXR1cm4gYTE7Cn0KCmludCBtYWluKHZvaWQpIHsKCWludCBpPTAsYW5zOwoJY2xvY2tfdCB0aVsyXTsKCWZvcihpO2k8PTMwO2krKyl7CgkJdGlbMF0gPSBjbG9jaygpOwoJCWFucyA9IGZpYm9fc2Fpa2koaSk7CgkJdGlbMV0gPSBjbG9jaygpOwoJCXByaW50ZigiZmlib19zYWlraSglZCnjga7mmYLplpM9JWxkXG4iLGksdGlbMV0tdGlbMF0pOwoJCXRpWzBdID0gY2xvY2soKTsKCQlhbnMgPSBmaWJvX25vdF9zYWlraShpKTsKCQl0aVsxXSA9IGNsb2NrKCk7CgkJcHJpbnRmKCJmaWJvX25vdF9zYWlraSglZCnjga7mmYLplpM9JWxkXG4iLGksdGlbMV0tdGlbMF0pOwoJfQoJcmV0dXJuIDA7Cn0K