c语言的cps实现求fibonacci数列示例
c语言的cps实现求fibonacci数列示例
发布时间:2016-12-28 来源:查字典编辑
摘要:CPS:http://en.wikipedia.org/wiki/Continuation-passing_style示例代码使用迭代+尾递...

CPS:http://en.wikipedia.org/wiki/Continuation-passing_style

示例代码使用迭代 + 尾递归。

复制代码 代码如下:

#include <stdio.h>

typedef void (*END_OF_END)(unsigned long);

void fibonacci(int, unsigned long, unsigned long, void(*)(unsigned long));

void

notify(unsigned long res) {

printf("Ultimate result: %lun" res);

exit(0);

}

/* Note: Fibonacci number might overflow! */

void

fibonacci(int n, unsigned long v1, unsigned long v2, void(*notify)(unsigned long)) {

if (n <= 0) notify(v2);

fibonacci(n - 1, v2, v1 + v2, notify);

}

int

main(void) {

fibonacci(100 - 2, 1, 1, notify);

return 0;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类