利用栈编写递归函数的非递归算法 20
展开全部
我感觉这道题目出得有问题:
假设这道题目用递归来实现,当用户输入的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我,接着探讨。
假设这道题目用递归来实现,当用户输入的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我,接着探讨。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询