使用递归在 3x3 数组中进行线性搜索

问题描述 投票:0回答:1

我正在尝试使用递归在 3x3 int 数组中搜索特定数字,但我不知道为什么内部函数永远不会返回真值,即使它应该返回。请帮忙。


    
    
    public static boolean inner(int a[][],int i,int j,boolean found,int search,int c)
    {
        if(a[i][j]==search && j<3)
        {
            System.out.println("found at "+c);
            return true;
        }
        else if(j<3)
        {
            return inner(a,i,j+1,found,search,c+1);

        }
        else
        {
            return found;
        }
    }
   
}

我尝试返回位置但失败了。

java arrays recursion
1个回答
0
投票
public class Matrix {

    public static boolean inner(int a[][], int i, int j, int search) {
        if (a[i][j] == search) {
            System.out.println("found at " + i + "," + j);
            return true;
        } else if (j < 3) {
            return inner(a, i, j + 1, search);
        } else {
            return inner(a, i + 1, 0, search);
        }
    }

    public static void main(String[] args) {
        int a[][] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
        inner(a, 0, 0, 16);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.