#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int sfibo(int n){
int s;
if(n<=1){
return 1;
}
else{
s=sfibo(n-1)+sfibo(n-2);
}
return s;
}
int nsfibo(int n){
int i,s0=1,s1=1,s=0;
if(n==0||n==1){
return 1;
}
for(i=2;i<=n;i++){
s=s0+s1;
s1=s0;
s0=s;
}
return s;
}
int main(void) {
clock_t ti[4];
sfibo(40);
printf("再帰を使ったfibo(40)の時間=%ld\n",ti
[1]-ti
[0]);
nsfibo(40);
printf("再帰を使っってないfibo(40)の時間=%ld\n", ti
[3]-ti
[2]); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBzZmlibyhpbnQgbil7CglpbnQgczsKCWlmKG48PTEpewoJCXJldHVybiAxOwoJfQoJZWxzZXsKCQlzPXNmaWJvKG4tMSkrc2ZpYm8obi0yKTsKCX0KCXJldHVybiBzOwp9CgppbnQgbnNmaWJvKGludCBuKXsKCWludCBpLHMwPTEsczE9MSxzPTA7CglpZihuPT0wfHxuPT0xKXsKCQlyZXR1cm4gMTsKCX0KCWZvcihpPTI7aTw9bjtpKyspewoJCXM9czArczE7CgkJczE9czA7CgkJczA9czsKCQkKCQl9CglyZXR1cm4gczsKCQkKCX0KCgppbnQgbWFpbih2b2lkKSB7CgljbG9ja190IHRpWzRdOwoJdGlbMF09Y2xvY2soKTsKCXNmaWJvKDQwKTsKCXRpWzFdPWNsb2NrKCk7CglwcmludGYoIuWGjeW4sOOCkuS9v+OBo+OBn2ZpYm8oNDAp44Gu5pmC6ZaT77ydJWxkXG4iLHRpWzFdLXRpWzBdKTsKCQoJdGlbMl09Y2xvY2soKTsKCW5zZmlibyg0MCk7Cgl0aVszXT1jbG9jaygpOwoJcHJpbnRmKCLlho3luLDjgpLkvb/jgaPjgaPjgabjgarjgYRmaWJvKDQwKeOBruaZgumWk++8nSVsZFxuIiwgdGlbM10tdGlbMl0pOwoJcHJpbnRmKCLjgojjgaPjgablho3otbfjgpLkvb/jgo/jgarjgYTmlrnjgYzml6njgYQiKTsKCXJldHVybiAwOwp9Cg==