开发者社区> 问答> 正文

利用栈编写递归函数的非递归算法

g(x,y)=0 x=0,y>=0g(x,y)=g(x-1,2y)+y x>0,y<0

展开
收起
知与谁同 2018-07-21 16:59:38 2465 0
1 条回答
写回答
取消 提交回答
  • 我感觉这道题目出得有问题:
    假设这道题目用递归来实现,当用户输入的x、y满足x=0 && y>=0或者x>0 && y<0时才合法。但是对于后一种情况,由于y是一个负数,输入的数在递归时传递给递归函数时的形式为x-1和2*y,2*y是永远不会变成一个大于等于0的数的,因此x=0 && y>=0就无法作为递归结束的条件。因此,这个函数有问题。如果函数改为:
    g(x,y)=0 x=0,y>=0
    g(x,y)=g(x-1,2y)+y x>0,y>0
    倒是可以实现。
    我以我改过的函数写一个示例,掌握了方法才是王道。
    http://hi.baidu.com/mayadong7349/blog/item/d82c8803e8ee6d161c9583ca.html
    如果我的理解有误,你可以HI我,接着探讨。
    2019-07-17 22:55:21
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载