Recursion 使用递归实现函数

Recursion 使用递归实现函数,recursion,mips,Recursion,Mips,我想做一个程序,找出数组中的整数从一个特定的数字开始小于或等于的时间。我必须使用递归。 我想当整数大于数字时返回0,否则返回1。 最后,我想找到一种方法,通过以递归的形式再次调用函数来添加所有这些返回。 请帮帮我 是否每次都必须在堆栈中保存返回值($v0)?是的,在每次函数调用开始时,调用堆栈并存储必要的值,在函数结束时(尾声),必须将堆栈重置到其位置,否则将从堆栈中恢复无效的变量和数据 我的建议是将地址传递给每个调用的比特数组和数组中的项数,并返回迭代次数(在递归调用前检查迭代>数组数量,并转

我想做一个程序,找出数组中的整数从一个特定的数字开始小于或等于的时间。我必须使用递归。 我想当整数大于数字时返回0,否则返回1。 最后,我想找到一种方法,通过以递归的形式再次调用函数来添加所有这些返回。 请帮帮我


是否每次都必须在堆栈中保存返回值($v0)?

是的,在每次函数调用开始时,调用堆栈并存储必要的值,在函数结束时(尾声),必须将堆栈重置到其位置,否则将从堆栈中恢复无效的变量和数据

我的建议是将地址传递给每个调用的比特数组和数组中的项数,并返回迭代次数(在递归调用前检查迭代>数组数量,并转移到尾声)以及总出现次数


我头脑中的快速思考告诉我,如果你正确地实施它,它应该会起作用。不幸的是,我没有时间在这一分钟写一个这样的例子(我很快就要去上课了),但理论应该是合理的。我可以看一下您的代码,稍后可能会提供帮助和/或在今天晚些时候编写一个快速示例。

以下是一些想法:

  • 通常,按照惯例,值0表示false;任何其他值都表示true。为了避免混淆,您可能希望在代码中采用该约定。当你描述你的思想时,真理和谬误似乎有着与传统相反的两极

  • >P>也许是一个改进,应该请您的指导老师:而不是返回0或1作为整数比较的结果,您可能需要考虑返回两个比较整数之间的算术差。这不仅可以为您提供相等(即差==0),还可以提供有关数组的整数成员的一些附加信息,而不会增加程序复杂性或时间成本。我被教导,在所有其他条件相同的情况下,函数返回的信息越多越好

  • 至于递归:我认为只要记住将每个返回的($v0)累积到某个全局变量中,就不必在堆栈上保留所有($v0)。但这只是我目前的观点,没有考虑问题


  • 嗯。我必须说,这是一个非常好的、小的、可管理的递归介绍。好极了

    你说的是哪种语言?codymanix:MIPS是一种低级汇编语言。它不再被广泛使用了(我相信我的老师说只有索尼还在他们的Playstation游戏系统中使用它)。谢谢你的建议!我会尝试将它们应用到我的程序中。你想在堆栈中存储$v0,唯一的原因是你不知道它是否在其他地方使用。我被教导将每个变量存储到堆栈中,并根据需要将其删除,以进行类似的操作。感谢您的建议!我将尝试在我的程序中应用它们,并希望找到解决方案!