07/11/13 22:35:55
>>440
それだと末尾最適化されないはず
こっちで
#include<stdio.h>
#include<stdlib.h>
typedef unsigned int uint;
uint iter(uint a, uint b, uint n) { return n == 0 ? 1 : n == 1 ? a : iter(a+b,a,n-1); }
uint fibonacci(uint n) { return iter(1,1,n); }
int main(void)
{
size_t idx = 0;
for( ; idx != 10; ++idx)
printf("%d: %d\n",idx,fibonacci(idx));
return EXIT_SUCCESS;
}