zl程序教程

您现在的位置是:首页 >  其他

当前栏目

c语言的cps实现求fibonacci数列示例

语言 实现 示例 数列 Fibonacci CPS
2023-06-13 09:15:20 时间

CPS:http://en.wikipedia.org/wiki/Continuation-passing_style
示例代码使用迭代+尾递归。

复制代码代码如下:


#include<stdio.h>

typedefvoid(*END_OF_END)(unsignedlong);
voidfibonacci(int,unsignedlong,unsignedlong,void(*)(unsignedlong));

void
notify(unsignedlongres){
 printf("Ultimateresult:%lu\n"res);
 exit(0);
}

/*Note:Fibonaccinumbermightoverflow!*/
void
fibonacci(intn,unsignedlongv1,unsignedlongv2,void(*notify)(unsignedlong)){
 if(n<=0)notify(v2);
 fibonacci(n-1,v2,v1+v2,notify);
}

int
main(void){
 fibonacci(100-2,1,1,notify);
 return0;
}