我正在尝试使用递归在 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;
}
}
}
我尝试返回位置但失败了。
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);
}
}