【问题标题】:How to convert iteration into recursion?如何将迭代转换为递归?
【发布时间】:2016-04-11 04:15:13
【问题描述】:

我想知道如何将嵌套的 for 循环转换为递归?

public int search(int x, int y, int target)
{
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            int result = Util.findSomthing(i,j); 
            if(result == target)
                return result; 
        }
    }
    return -1; //for target not found
}

【问题讨论】:

  • 我猜这是Java?
  • 您是否已经尝试过递归地实现这个功能?如果是这样,请发布您的递归代码。
  • int x, int y, 这两个参数的目的是什么
  • 不清楚为什么你不能自己做这样的作业。

标签: java loops for-loop recursion


【解决方案1】:

首先你的代码不应该编译,因为没有明确的return 语句。

你还没有说参数int x, int y的用途,

所以我假设xi 的最大限制,yj 的最大限制

那么一种方法是这样的:

public int search(int i, int j, int x, int y, int target) {
    if (i == x) return -1; // for target not found
    int result = Util.findSomthing(i, j++); 
    if(result == target) return result;
    return search((j < y ? i : i++) , (j < y ? j : 0), x, y, target);
}

你必须把它称为search(0, 0, 10, 10, 99);

【讨论】:

    猜你喜欢
    • 2016-01-26
    • 2017-03-05
    • 2017-02-22
    • 2021-07-06
    • 2021-06-18
    • 1970-01-01
    相关资源
    最近更新 更多